我正在尝试使用 rollmean 在包含非数字列的动物园对象上的功能。我的目标是向现有对象添加新列。

为什么以下测试代码不起作用?

library(zoo)
d <- data.frame(time=c(1, 2, 3), foo=c('a', 'b', 'c'), bar=c(32, 4, 1))
z <- zoo(d, order.by=d$time)
rollmean(z$bar, 2)

我得到了“非数字参数到二进制操作员”错误。该功能不应该仅使用条形列吗?我是否必须为条形列创建一个单独的动物园对象,在其上使用滚动函数,然后将结果合并 z?

有帮助吗?

解决方案

使用as.numeric将其转换为向量

rollmean(as.numeric(z$bar), 2)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top