【发布时间】:2019-10-20 01:00:55
【问题描述】:
我想在 data.table 上滚动应用一个函数。在函数中,我想使用 data.table 子集,以便下面的示例有效。
library(zoo)
library(data.table)
dt <- data.table(i = 1:100,
x = sample(1:10, 100, replace = T),
y = sample(1:10, 100, replace = T))
rollapply(dt, width=10, FUN = function(dt_slice) dt_slice[, mean(x == y)])
【问题讨论】:
-
这是你想要的吗?
dt[, rollapply(x == y, width = 10, FUN = mean)]? -
rollapply() 来自包装动物园?您的预期输出是什么?
-
@IceCreamToucan 尽管该示例有效,但不幸的是,对于我的应用程序来说并不是那么简单。我真的需要能够使用 FUN 中的一个子集
-
请问
dt_slice是如何定义的?如果dt_slice的行数少于滚动窗口的宽度,您期望得到什么结果? -
希望很快会有
frollapply在滚动窗口上应用任意R函数,状态见github.com/Rdatatable/data.table/pull/3600
标签: r data.table zoo