Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
as.yearqtr从12月开始,而不是从1月开始_R_Time Series_Raster_Zoo - Fatal编程技术网

as.yearqtr从12月开始,而不是从1月开始

as.yearqtr从12月开始,而不是从1月开始,r,time-series,raster,zoo,R,Time Series,Raster,Zoo,我创建了一个光栅时间序列作为一个动物园。我可以汇总季度平均数,但我需要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,

我创建了一个光栅时间序列作为一个动物园。我可以汇总季度平均数,但我需要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)
库(光栅)
图书馆(动物园)

C您可以使用
stackApply
,它在概念上类似于
tapply
。不像
zApply
那样灵巧,因为设置所需的索引可能会更费力

stackApply(CO2, c(1,1,1,2,2,2,3), fun=mean) 
尝试:


示例代码应该是可复制的,这意味着应该提供运行它所需的所有输入。我将代码扩展了一位,以使其可复制,它还需要所有库语句。谢谢RobertH。事实上,这个例子很有规律。实际数据集缺少几个月,我不想对此进行插值。例如,如果一年中只有12月的数据,我希望它返回12月的平均值,1月至2月,这与12月基本相同。我不理解您的回答
stackApply
实际上与
zApply
相同。哪一个更容易取决于数据的组织方式
zApply(CO2, by=round(unclass(getZ(CO2)) * 12 + 1) %/%3, fun=mean)