无法在 R 中的栅格堆栈上执行 median()

Can't perform median() on a raster stack in R

我试图在 R 中的一组栅格中找到每个像元的中位数,但是当我使用 median 函数时,出现以下错误:

Error in if (any(is.na(x))) return(x[FALSE][NA]) : 
  argument is not interpretable as logical

但是,我可以在我的堆栈上执行 maxmeancalc(r, median),所以我怀疑这不是数据格式 (tif) 的问题。我使用的代码是:

加载数据:

f = list.files("./")
r = stack(f)

求和:

median(r) # does not work
mean(r) # works
max(r) # works
calc(r, median) # works

由于 calc 正在运行,我不需要回答即可继续,但我想了解为什么 median 无法运行。这是标准行为吗?

根据 reference manual,p. 201:

The following summary methods are available for Raster* objects: mean, max, min, range, prod, sum, any, all

median 不是可用于 Raster* 对象的汇总方法。这就是为什么你需要使用 calc 函数。