首页 > 解决方案 > Dplyr 相当于 SUM over PARTITION BY

问题描述

我敢肯定这个问题以前被问过,但我找不到答案。

这是我的数据:

df <- data.frame(group=c("a","a","a","b","b","c"), value=c(1,2,3,4,5,7))
df
#>   group value
#> 1     a     1
#> 2     a     2
#> 3     a     3
#> 4     b     4
#> 5     b     5
#> 6     c     7

我想要第三列,其中包含每个“组”的“价值”总和,如下所示:

#>   group value group_sum
#> 1     a     1         6
#> 2     a     2         6
#> 3     a     3         6
#> 4     b     4         9
#> 5     b     5         9
#> 6     c     7         7

我怎样才能用 dplyr 做到这一点?

标签: rdplyr

解决方案


使用 dplyr -

df %>%
    group_by(group) %>%
    mutate(group_sum = sum(value))

推荐阅读