Convert to POSIXct and sort.

Note that tapply will coerce to a factor, so you need to create a factor 
with the levels sorted as you want them: just sorting date will not help.
Something like

udate <- unique(date)
lev <- udate[sort.list(as.POSIXct(strptime(udate, "%m/%d/%Y")))]
date <- factor(date, levels=lev)


On Mon, 2 Feb 2004, Jeff Jorgensen wrote:

> 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)
> 
> 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?

-- 
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to