问题描述
一段时间以来,我一直在使用RcppRoll
的{{1}}函数来获取滚动平均值。但是,现在,当我在roll_meanr()
之后的grouped data frame
上使用它时,我将返回所有group_by()
的信息。
我以前成功使用NA
进行了如下所示的分组。我知道它可以通过删除一个分组来工作,但是我不明白为什么无法解决该问题或无法使用下面使用的分组。
这是此问题的一个示例。
roll_meanr()
结果:
# Create test data and turn into data frame
df <- cbind(
c(1,2,3,4,5,6,7,8,9),c("cali","bong","cali","neva","bong"),c(32,22,00,32,21,43),c("kingdom","democratic","kingdom","democratic")) %>%
as.data.frame()
# Set column names
colnames(df) <- c("days","names","numbers","category")
# Set numbers as numeric
df$numbers <- as.numeric(df$numbers)
# Group and get rolling average
df %>%
group_by(names,category,days) %>%
mutate(rolling = RcppRoll::roll_meanr(numbers,2))
解决方法
akrun 的回答(来自评论):
“每组您只有一个观察结果”
df %>% group_by(names,category,days) %>% summarise(n = n())