gpt4 book ai didi

r - dplyr 中的重叠组

转载 作者:行者123 更新时间:2023-12-01 10:47:33 26 4
gpt4 key购买 nike

我正在尝试根据分组因素计算“滚动”汇总统计数据。有没有一种基于(比如)有序因子的(重叠)组处理的好方法?

举个例子,假设我想按组计算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”行应该在两个输出组中结束。

最佳答案

尝试滞后:

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

关于r - dplyr 中的重叠组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24196558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com