我试图使用terra软件包中的global()函数来计算spatRaster中的非NA值.除了"isNA""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

有趣的是,当查看文档(?global)时,NA函数在函数描述中被命名,但没有被专门列为fun的参数选项.

那么,global()能计算出NAs/非NAs吗?NA函数名正确吗?

编辑:

推荐答案

您的terra版本可能已经过时,并且不包括功能isNAnotNA.您可以在Terra raster methods处看到当前版本的源代码中的函数(global函数的第2551到2639行).

我目前运行的是1.5.21版,功能正常.

packageVersion("terra")
#[1] ‘1.5.21’

global(r, fun="isNA")
#      isNA
#lyr.1    1

global(r, fun="notNA")
#      notNA
#lyr.1    99

您可以使用以下内容更新包并重新加载库:

install.packages("terra")
library(terra)

R相关问答推荐

当使用stat_summary()+ after_stat()在图表上标记中位数/均值时,如何整齐地定位geom_text标签

在交互式情节中从barplot中获取值时遇到问题,在shinly中的ggplotly

在水平条形图中zoom x_轴

self_函数无法工作--无法子集结束后的列

如何创建构成多个独立列条目列表的收件箱框列?

使用spatVector裁剪网格数据时出现的问题

ggplot 2中的地块底图(basemaps_gglayer()不起作用)

在某些栏和某些条件下,替换dfs列表中的NA

用值序列对行进行子集化,并标识序列开始的列

筛选出以特定顺序患病的个体

如何在区分不同条件的同时可视化跨时间的连续变量?

R根据条件进行累积更改

如何调整曲线图中的y轴标签?

如何将R中数据帧中的任何Nas替换为最后4个值

您是否可以折叠R中的重复行,同时保留基于所选列的值?

如何用书面利率绘制geom_bar图

用约翰逊分布进行均值比较

如何在使用箭头R包(箭头::OPEN_DATASSET)和dplyr谓词时编写具有整齐计算的函数?

快速合并R内的值

如何将EC50值绘制在R中的剂量-react 曲线上?