【发布时间】:2019-12-14 15:06:06
【问题描述】:
我正在尝试将 dplyr 中的一些较慢的进程移动到使用 data.table,但似乎无法找到在 data.table 中使用“mutate_at”类型方法的有效方法。尤其是在命名创建的新变量并将超过 1 个函数应用于多列时。
下面我使用 mutate_at 将 2 个不同的函数应用于 2 个不同的列,并使用 group by 语句关联命名+。我希望能够在 data.table 中轻松复制它。
library(tibble)
library(zoo)
Data = tibble(A = rep(c(1,2),50),
B = 1:100,
C = 101:200)
Data %>%
group_by(A) %>%
mutate_at(vars(B,C), funs(Roll.Mean.Week = 7 * rollapply(., width = 7, mean, align = "right", fill = 0, na.rm = T, partial = T),
Roll.Mean.Two.Week = 7 * rollapply(., width = 14, mean, align = "right", fill = 0, na.rm = T, partial = T))) %>%
ungroup()
【问题讨论】:
标签: r data.table dplyr