Can';t在R中的光栅堆栈上执行中值()
我试图在R中的一组光栅中找到每单元的中值,但是当我使用Can';t在R中的光栅堆栈上执行中值(),r,spatial,raster,R,Spatial,Raster,我试图在R中的一组光栅中找到每单元的中值,但是当我使用中值函数时,我得到以下错误: Error in if (any(is.na(x))) return(x[FALSE][NA]) : argument is not interpretable as logical 但是,我可以在堆栈上执行max、mean和calc(r,median),因此我怀疑这不是数据格式(tif)的问题。我使用的代码是: 加载数据: f = list.files("./") r = stack(f) 请执行以下
中值
函数时,我得到以下错误:
Error in if (any(is.na(x))) return(x[FALSE][NA]) :
argument is not interpretable as logical
但是,我可以在堆栈上执行max
、mean
和calc(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
不起作用的原因。这是标准行为吗?根据,p。201:
以下摘要方法可用于光栅*对象:
平均值
,最大值
,最小值
,范围
,产品
,总和
,任何
,全部
中值
不是可用于光栅*对象的汇总方法。这就是为什么需要使用calc
函数的原因。因为median
不是光栅*对象可用的汇总方法。目前可用的汇总方法有mean
,max
,min
,range
,prod
,sum
,any
和all
。资料来源:PASCAL考虑把这个答案作为答案,不要忘记告诉你这个信息在哪里。<代码>媒体()/代码>也不存在SARK 1.SAR1.16-(这个答案帮助我认识到)。