如何使用terra的全局函数来计算NA?

ia2*_*200 6 r raster na terra

global()我正在尝试使用terra 包中的函数来计算 spatRaster 中的非 NA 值。"isNA"除了和之外,所有函数(mean、max、sd 等)似乎都可以工作"notNA"。对于这两个函数,它返回此错误:Error in fun(values(x[[i]]), ...) : could not find function "fun",这与它为拼写错误/不存在的函数返回的错误相同。

r <- rast(ncols=10, nrows=10)
values(r) <- c(1:(ncell(r)-1),NA) # Add one NA value
global(r, fun="mean", na.rm=TRUE) # works
global(r, fun="notNA") # error
global(r, fun="notAfunction") # error
Run Code Online (Sandbox Code Playgroud)

有趣的是,在查看文档 ( ?global) 时,函数描述中对 NA 函数进行了命名,但并未专门列为 的参数选项fun

那么可以global()计算 NA/非 NA 吗?NA 函数名称是否正确?

编辑:大地版本:1.4.22

And*_*own 7

您的 版本terra可能已过时,并且不包含功能isNAnotNA您可以在Terra rastermethods中查看当前版本源代码中的函数(该global函数的第 2551 至 2639 行)。

\n

我目前正在运行的版本1.5.21,功能运行良好。

\n
packageVersion("terra")\n#[1] \xe2\x80\x981.5.21\xe2\x80\x99\n\nglobal(r, fun="isNA")\n#      isNA\n#lyr.1    1\n\nglobal(r, fun="notNA")\n#      notNA\n#lyr.1    99\n
Run Code Online (Sandbox Code Playgroud)\n

您可以使用以下命令更新包并重新加载库:

\n
install.packages("terra")\nlibrary(terra)\n
Run Code Online (Sandbox Code Playgroud)\n