滚动意味着分组

时间:2017-08-24 09:39:34

标签: r dplyr mean zoo

我正在尝试对分组的数据(dplyr::group_by)进行滚动操作 - 我无法理解为什么这不起作用:

set.seed(1)
library(dplyr)
library(zoo)
df <- data.frame(a=sample(LETTERS[1:2], replace= T, 10),
                 b=rnorm(20), stringsAsFactors = F)
df %>% 
  group_by(a) %>% 
  mutate(rollapply(b, 3, mean))

我可以看到找到一个冗长的解决方案here ,但是想知道为什么以上不起作用

1 个答案:

答案 0 :(得分:3)

默认情况下,NA已删除,因此我们需要使用fill

 df %>% 
   group_by(a) %>% 
   mutate(newcol = rollapply(b, 3, mean, fill = NA))