gpt4 book ai didi

r - 累积分组

转载 作者:行者123 更新时间:2023-12-02 11:34:31 25 4
gpt4 key购买 nike

我有以下数据框:

df = data.frame(a = c(1,1,3,2,2), b=6:10)
## a b
## 1 6
## 1 7
## 3 3
## 2 9
## 2 10

我想按组分析数据(a是分组参数),但我需要“累积组”,而不是通常的(例如每个值指定一组行,并且这些组是不相交的)。也就是说,对于 a=i 的值,该组应包含 a<=i 的所有行。这些不是不相交的组,但我仍然想分别总结每个组。

例如,如果对于每个组我想要 b 的平均值,结果将是:

##    a    mean_b
## 1 6.5
## 2 8
## 3 7

请注意,在这个简化示例背后的真实场景中,我无法单独分析不相交的组,然后聚合相关组。汇总函数必须“了解”该组中的所有行才能执行计算。

所以,当然,我可以使用一些应用函数并以良好的旧方式计算事物,并从中创建一个新的 df,但我寻找 dplyr/tidyverse 之类的函数来做到这一点。

有什么建议吗?

最佳答案

像这样怎么样?

library(dplyr)

df %>%
arrange(a) %>%
group_by(a) %>%
summarise(sum_b = sum(b)) %>%
ungroup() %>%
mutate(sum_b = cumsum(sum_b))

# a sum_b
# <dbl> <int>
#1 1. 13
#2 2. 32
#3 3. 40

我们按组 (a) 取 sum,然后将累积和添加到下一组中的该组的前一个值。

关于r - 累积分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53581633/

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