我试图根据分组系数计算“滚动”汇总统计数据。是否有一个很好的方法来处理(重叠的)组,基于(比如说)一个有序的因子?
例如,我想按组计算val
之和
df <- data.frame(grp = c("a", "a", "b", "b", "c", "c", "c"),
val = rnorm(7))
对于基于grp
的组,很简单:
df %>% group_by(grp) %>% summarise(total = sum(val))
# result:
grp total
1 a 1.6388
2 b 0.7421
3 c 1.1707
然而,我想要做的是计算连续组的“滚动”和("a“和"b",然后"b”和"c“等等)。所需的输出如下所示:
grp1 grp2 total
1 a b 1.6388
2 b c 0.7421
我在dplyr里做这件事有困难。特别是,我似乎无法弄清楚如何获得“重叠”组--上面示例中的"b“行应该在两个输出组中结束。
发布于 2014-06-13 12:28:31
试试lag
df %>%
group_by(grp) %>%
arrange(grp) %>%
summarise(total = sum(val)) %>%
mutate(grp1 = lag(grp), grp2 = grp, total = total + lag(total)) %>%
select(grp1, grp2, total) %>%
na.omit
https://stackoverflow.com/questions/24196558
复制相似问题