[R] Extracting months and years from Dates while keeping order

Gabor Grothendieck ggrothendieck at gmail.com
Fri May 6 22:11:52 CEST 2011


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



More information about the R-help mailing list