我正在使用具有数千层的光栅砖“a”,我的问题不需要更详细的描述。我正在使用以下函数创建一个至少 5 天的总运行次数大于 1 的栅格图层(砖中的一层是一天):
indices<-rep(1:69,each=90)
ff<-function(x,na.rm=TRUE){
y<-x > 1
n<- ave(y,cumsum(y == 0), FUN = cumsum)
sum(n==5)
}
Y<-stackApply(a,indices,fun=ff)
这很好用,我测试过。以类似的方式,我编写了新函数:
fff<-function(x,na.rm = TRUE){
y <- x > 1
n <- ave(y, cumsum(y == 0), FUN = cumsum)
mean(n[n >= 5])
}
X<-stackApply(a,indices,fun=fff)
使用这个函数,我想创建一个平均长度超过 5 天的栅格图层。这似乎合理且很好,但它不能正常工作。例如,当运行 6 天(满足我的价值标准>1)时,它计算两次运行,5 次运行一次,6 次运行一次,因此平均值是 5,5 而不是 6。我不是确定如何调整我的功能 fff。如果有办法做到这一点,那就太好了,否则,如果有人分享另一种方法来计算这些运行的平均值,我会很高兴。谢谢!