Hi John,

The package lubridate is the easiest way to deal with dates.

library(lubridate)
frame$groupByWeekNumber <- wday(frame$dt) - 1   # Sun=1, Sat=7






On Mon, Jul 7, 2014 at 11:54 PM, John McKown <john.archie.mckown@gmail.com>
wrote:

> I have a column, dt, in a data.frame. It is a list of POSIXct objects.
> I could use strftime(frame$dt,"%a") to get the day of week as
> [sun..sat]. But I need the numeric value in the range of [0..6]. I
> can't see a function to do this. I can get it by converting the
> POSIXct objects to POSIXlt objects, then extracting the $wday. I don't
> know why, but that just doesn't "feel" right to me. What I am actually
> trying to do is group my data by Gregorian week (Sunday..Saturday). To
> group the data, I am getting the ISO 8601 year and week number using
> strftime(dt) with the format of "%G-%V" . But the ISO year&week number
> start on Monday, not Sunday. So what I do is:
>
> dt <- as.POSIXlt(frame$dt);
> dt <- dt - dt$wday*86400; # 86400 is seconds in a day
> frame$groupByWeekNumber <- strftime(dt,"%G-%V");
>
> is there a better way? I have tried my best to find a simpler way.
>
> --
> There is nothing more pleasant than traveling and meeting new people!
> Genghis Khan
>
> Maranatha! <><
> John McKown
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]

