roll_meanr使用group_by返回NA

问题描述

一段时间以来,我一直在使用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())