我有一个光栅时间序列作为动物园onbect创建。我能够按季度汇总,但我想要从12月到2月,3月到5月,6月到8月和9月到11月的总量。我怎么能这样做呢? 正常的R代码是:
library(raster)
library(zoo)
C <- raster(nrows=30, ncols=30)
C[] <- 1:ncell(C)
O <- raster(nrows=30, ncols=30)
O[] <- 1:ncell(O)
CO1 <- stack(C,C,C,C,O,O,O)
m <- seq(as.Date('2009-12-15'), as.Date('2010-06-15'), 'month')
CO2 <- setZ(CO1,m)
CN <- zApply(CO2, by=as.yearqtr, fun=mean)
这将产生12月,1月至3月和4月至6月的季度平均值。 我想要的是6月 - 2月,3月 - 5月,6月的平均值。
答案 0 :(得分:3)
尝试:
zApply(CO2, by=round(unclass(getZ(CO2)) * 12 + 1) %/%3, fun=mean)
答案 1 :(得分:0)
您可以使用stackApply
,它在概念上类似于tapply
。不如zApply
那么漂亮,因为设置所需的索引可能会更费力。
stackApply(CO2, c(1,1,1,2,2,2,3), fun=mean)