[R] sorting by date
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Mon Feb 2 23:49:44 CET 2004
Jeff Jorgensen <jcjorgensen at wisc.edu> writes:
> Hello,
>
> I have set up a data.frame and one of the columns contains a date of
> the form (with slashes as separators):
>
> mm/dd/yyyy
>
> I would like to use formulas on other columns in the data.frame
> organized by date, for example:
>
> tapply(var1, sort(date), mean)
I don't think that does what I think you think it does!
> However, when I try sort(date) it sorts based on the first two entries
> in the date field:
>
> 9/1/2001 9/1/2002 9/1/2003 9/2/2001 ...
> 5.6 7.5 6.4 7.0 ...
>
> Instead of:
>
> 9/1/2001 9/2/2001 9/3/2001 9/4/2001 ...
> 5.6 6.1 7.2 6.8 ...
>
> I would greatly appreciate any help in sorting chronologically. Do I
> need to create separate columns for month, day, and year, and then use
> order() and then stipulate the hierarchy for which to sort the output?
> Or, is there some other more efficient way?
You now know why the ISO standard has yyyy-mm-dd ...
It's a bit awkward, but I think you need something like
pdate <- as.POSIXct(strptime(date,"%m/%d/%Y"))
tapply(var1, pdate, mean)
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list