【发布时间】:2017-12-05 13:52:14
【问题描述】:
我正在尝试为数据集计算一堆滚动均值 -
date name px_last
2012-12-04 A 6.81
2012-12-05 A 4.28
2012-12-06 A 4.32
2012-12-04 A 6.89
2012-12-05 A 7.24
2012-12-04 B 6.81
2012-12-05 B 9.38
2012-12-06 B 3.62
2012-12-04 C 3.85
2012-12-05 C 4.23
2012-12-06 C 7.32
2012-12-04 C 2.84
2012-12-05 C 8.38
这是我正在使用的代码 -
vec = c(2, 3, 4, 5)
for(i in c(1:length(vec))){
varname = paste0("ma", vec[i])
df = df %>% group_by(name) %>% mutate(!!varname := rollapplyr(px_last, vec[i], mean, na.rm = TRUE, fill = "NA"))
}
我从第三次迭代中得到的错误是 -
Error in mutate_impl(.data, dots) :
Evaluation error: wrong sign in 'by' argument.
从这个帖子 - Clueless about this error: wrong sign in 'by' argument - 我知道这是因为某些组的行数不足;在此示例中,使用 name = B 分组
如何在不删除观察值不足的组的情况下计算均值?我希望在由于观察不足而无法计算平均值的地方使用 NA。
【问题讨论】:
-
memb_hist %>% group_by() ...中的memb_hist是什么? -
@ANG,它是数据框的名称。现在编辑它。对不起!
-
@phil_t 你能粘贴一下df的样子吗
-
@Taran,添加了示例 df。