If "monthly" should aggregate per "yyyy-mm" combination, you could try 
something like

   aggregate(x$z,list(cut(as.Date(x$Date),"m")),mean)

for monthly aggregation and

   aggregate(x$z,list(cut(as.Date(x$Date),"y")),mean)

for yearly means.
If monthly aggregation should aggregate over different years (and 
produce only 12 numbers), maybe

   aggregate(x$z, list(format(as.Date(x$Date),"%m")),mean)

works (everything untested).
Be sure to use R 2.4.1 patched or 2.5.0, since there was a bug in 
cut.Date which prevents the yearly aggregation from working properly 
before R 2.4.1 patched!

Regards,

  Martin

Michel Schnitz wrote:
> Hello,
>
> is there a way to use the aggregate function to calculate monthly mean 
> in case i have one row in data frame that holds the date like 
> yyyy-mm-dd? i know that it works for daily means. i also like to do it 
> for monthly and yearly means. maybe there is something like aggregate(x, 
> list(Date[%m]), mean)?
> the data frame looks like:
>
> Date          Time    z
> 2006-01-01    21:00   6,2
> 2006-01-01    22:00   5,7
> 2006-01-01    23:00   3,2
> 2006-01-02    00:00   7,8
> 2006-01-02    01:00   6,8
> 2006-01-02    02:00   5,6
> .
> .
> .
> 2007-03-30    22:00   5,2
> 2007-03-30    23:00   8,3
> 2007-03-31    00:00   6,4
> 2007-03-31    01:00   7,4
>
> thanks for help!
>

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

Reply via email to