[R] sorting by date

Gabor Grothendieck ggrothendieck at myway.com
Tue Feb 3 01:27:16 CET 2004


I assume the dates are strings.  If they are factors use 
as.character(date) in place of date below.  str(date) will
tell you what you have.

It so happens that chron maps dates in your format to days 
since an origin (which sort properly) so you could try this:

require(chron)
z <- tapply( var1, date, mean )
z[order(chron(names(z)))]

Note that date() is a function in R so you might want to
choose a different variable name to prevent confusion.


Date:   Mon, 02 Feb 2004 16:16:13 -0600 
From:   Jeff Jorgensen <jcjorgensen at wisc.edu>
To:   <r-help at stat.math.ethz.ch> 
Subject:   [R] sorting by date 

 
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)

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?

Thanks,

Jeff

______________________________________________
R-help at stat.math.ethz.ch 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




More information about the R-help mailing list