[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