[R] Odp: aggregate months to years

Petr PIKAL petr.pikal at precheza.cz
Mon Jul 14 15:07:22 CEST 2008


Hi

r-help-bounces at r-project.org napsal dne 14.07.2008 14:37:36:

> Many thanks for the recent answers to my question about pattern 
recognition.
> The hint to "grep" and the "pattern" argument brought me a big deal 
forward.
> 
> # Now, I have a data frame:
> 
> DATE <- c("1930-01-01", "1930-01-01", "1930-02-01", "1931-01-01",
> "1931-02-01", "1931-03-01") # almost all months until "1999-12-01". Day 
is
> always 01, the same months actually occur several times.
> FREQ <- rep(1,6)
> ex<- data.frame(DATE,FREQ)
> 
Your DATE is not in Date format. See as.Date

ex$Date<-as.Date(ex$DATE)




> # I can aggregate it like this:
> 
> ex <- tapply(ex$FREQ, ex$DATE, sum)

ex1<-tapply(ex$FREQ, cut(ex$Date, "years"), sum)
ex1<-tapply(ex$FREQ, format(ex$Date, "%Y"), sum)

gives you yearly aggregates

> 
> # or use"grep" to extract a single year:
> # ex[grep(pattern="^1931", ex$DATE),]
> 
> # But how can I aggregate the years such that a barplot would show me 
the
> FREQ per year and not per month?
> 
> barplot(as.vector(ex))

barplot(ex1)

could be what you want.

Regards
Petr

> 
> # Sorry for the bad example, of course my data.frame is much bigger and 
the
> barplot gives me a nice monthly time series of events, but I really only 
want
> the occurrences per year, not per month.
> 
> Grateful for your advice!
> Friderike
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list