How to calculate a monthly mean?

匿名 (未验证) 提交于 2019-12-03 10:24:21

问题:

I have the daily weather report like this. What I want is to calculate the monthly mean of the max, min and observation temperature and then plot these three lines. I already convert the date format like this:

Date = as.POSIXlt(Weather2011$Date, format = "%m/%d/%Y")   Year = as.numeric(format(Date, format = "%Y")) Month = as.numeric(format(Date, format = "%m")) Week = as.numeric(format(Date, format = "%U")) Weekday = as.numeric(format(Date, format = "%w"))

Weather2011 looks like this:

Date      Max.Temp  Min.Temp  Temp  Date        Year   Month  Week  Weekday 6/3/2010  87        63        63    2010-06-03  2010   6      22    4 6/4/2010  83        63        73    2010-06-04  2010   6      22    5

回答1:

I find that tapply works well. Ex.

x <- seq(from=as.Date("2000-01-01"), to=as.Date("2004-12-31"), by="day") y <- sin(seq(from=0, to=2*pi*5,length.out=length(x)))+rnorm(length(x)) yyyymm <- paste(format(as.POSIXlt(x), format="%Y-%m"), "01", sep="-") MEAN <- tapply(y, yyyymm, mean) MAX <- tapply(y, yyyymm, max) MIN <- tapply(y, yyyymm, min) #plots x11() par(mfcol=c(1,2)) plot(x,y, ylim=range(MEAN, MAX, MIN), ylab="", xlab="") plot(as.POSIXlt(names(MEAN)), MEAN, t="l", ylim=range(MEAN, MAX, MIN), ylab="", xlab="") lines(as.POSIXlt(names(MEAN)), MAX, lty=2) lines(as.POSIXlt(names(MEAN)), MIN, lty=2)



转载请标明出处:How to calculate a monthly mean?
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!