首页 > 解决方案 > 如何对数据框中相似组中的值求和?

问题描述

alpha <- c(11,12,21,24,33,11,33)
group <- c("a", "b", "a", "c", "a", "c","d")

df <- data.frame(group,alpha)
df <- df[with(df, order(group)),]

我想对每个组的值求和并将结果附加到数据框中,但我不知道该怎么做。输出将类似于下面的结果。

   group alpha sum
1     a    11  65
2     a    21  65
3     a    33  65
4     b    12  12
5     c    24  35
6     c    11  35
7     d    33  33 

标签: rdataframe

解决方案


您可以使用dplyrwithgroup_by来计算总和,然后join附加您的原始 data.frame:

alpha <- c(11,12,21,24,33,11,33)
group <- c("a", "b", "a", "c", "a", "c","d")

df <- data.frame(group,alpha)
df <- df[with(df, order(group)),]

library(dplyr)
df_stat <- df %>% 
  group_by(group) %>% 
  summarise(sum = sum(alpha))

df <- df %>% 
  left_join(df_stat)

df
  group alpha sum
1     a    11  65
2     a    21  65
3     a    33  65
4     b    12  12
5     c    24  35
6     c    11  35
7     d    33  33

推荐阅读