Dimitri Liakhovitski
2011-May-06 20:07 UTC
[R] Extracting months and years from Dates while keeping order
Hello! I'd like to take Dates and extract from them months and years - but so that it sorts correctly. For example: x1<-seq(as.Date("2009-01-01"), length = 14, by = "month") (x1) order(x1) # produces correct order based on full dates # Of course, I could do "format" - but this way I am losing the "Date" quality of the data: x2<-format(x1,"%Y.%m") (x2) order(x2) Not sure it's possible at all: But is there some other way to extract just months and years from Dates (while ingoring days) - but so that it's still somehow a Date object? Thank you very much! -- Dimitri Liakhovitski Ninah Consulting www.ninah.com
Gabor Grothendieck
2011-May-06 20:11 UTC
[R] Extracting months and years from Dates while keeping order
On Fri, May 6, 2011 at 4:07 PM, Dimitri Liakhovitski <dimitri.liakhovitski at gmail.com> wrote:> Hello! > > I'd like to take Dates and extract from them months and years - but so > that it sorts correctly. For example: > > x1<-seq(as.Date("2009-01-01"), length = 14, by = "month") > (x1) > order(x1) ?# produces correct order based on full dates > > # Of course, I could do "format" - but this way I am losing the "Date" > quality of the data: > > x2<-format(x1,"%Y.%m") > (x2) > order(x2) > > Not sure it's possible at all: But is there some other way to extract > just months and years from Dates (while ingoring days) - but so that > it's still somehow a Date object? >Try using the yearmon class in zoo.> library(zoo) > y <- as.yearmon(x1) > y[1] "Jan 2009" "Feb 2009" "Mar 2009" "Apr 2009" "May 2009" "Jun 2009" [7] "Jul 2009" "Aug 2009" "Sep 2009" "Oct 2009" "Nov 2009" "Dec 2009" [13] "Jan 2010" "Feb 2010"> order(y)[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com