下面是一个模仿的例子:
df_1 <- data. Frame( a = 1:10)
我在a上使用zoo::rollapply计算滚动平均值没有问题
zoo::rollapply(df_1$a, 5, "mean", fill = NA, align = "right")
[1] NA NA NA NA 3 4 5 6 7 8但是,如果我试图对HodgesLehmann函数在DescTools中执行同样的操作,则会生成一个错误:
> zoo::rollapply(df_1$a, 5, "DescTools::HodgesLehmann", fill = NA, align = "right")
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'DescTools::HodgesLehmann' of mode 'function' was not found但我不难计算出df_1$a的霍奇斯·莱曼平均数
DescTools::HodgesLehmann(df_1$a)
[1] 5.5我做错了什么,如何纠正我的错误?
真诚地,并表示衷心的感谢
托马斯·菲利普斯
发布于 2022-09-11 14:54:26
删除DescTools::HodgesLehmann周围的引号
zoo::rollapply(df_1$a, 5, DescTools::HodgesLehmann, fill = NA, align = "right")您需要传递一个函数,而不是字符串。
令人惊讶的是,FUN = "mean"可以工作,但重要的是,FUN = mean也能工作。也许zoo::rollapply有一些它知道名称的函数。
发布于 2022-09-11 13:49:03
尝试将其设置为匿名函数。
zoo::rollapply(df_1$a, 5, function(x) DescTools::HodgesLehmann(x), fill = NA, align = "right")
#
[1] NA NA NA NA 3 4 5 6 7 8https://stackoverflow.com/questions/73679674
复制相似问题