【发布时间】:2018-11-08 12:47:03
【问题描述】:
我正在努力解决栅格堆栈的地板单元值问题。这里有一些示例数据:
library(raster)
r <- raster(ncol=10, nrow=10)
s <- stack(lapply(1:365, function(i) setValues(r, runif(100, 0, 1))))
# adding NAs
s[[2]][sample(100, 25, TRUE)] <- NA
s[sample(100, 25, TRUE)] <- NA
我有一整年的时间序列栅格堆栈。一些单元格完全设置为 NA 以及时间序列中的一些单个值。 我正在尝试将每个单元格中的值降低到单元格的下 0.025 分位数。这就是我的功能所取得的进展:
f <- function(i) {
v_q <- quantile(i,probs = .025 ,na.rm=TRUE)
if (length(v_q) > 0) {
if(i[v_q] < v_q) {
i[v_q] <- v_q
}
i
}
i
}
x <- calc(s, fun = f)
当我将它应用于calc 时,我不断收到以下错误:
Error in .calcTest(x[1:5], fun, na.rm, forcefun, forceapply) :
cannot use this function
有什么想法吗?
【问题讨论】: