首页 > 解决方案 > R:对按特定列分组的特定列求和

问题描述

我有一个看起来像这样的数据框:

Col1 Col2 Col3 Col4 
10    A    5    4    
10    A    6    3   
30    B    2    7   
45    C    5    1  
45    C    2    1   

我想将仅按 Col2 分组的第 3 列和第 4 列相加,这样我的结果数据框看起来像

Col1 Col2 Col3 Col4 
10    A    11    7    
30    B    2     7   
45    C    7     2  

Col1 是 Col2 的标识符,所以我希望保留它。谢谢

标签: r

解决方案


1.最小可重复的示例数据:

df <- structure(list(Col1 = c(10L, 10L, 30L, 45L, 45L),
                     Col2 = c("A", "A", "B", "C", "C"), 
                     Col3 = c(5L, 6L, 2L, 5L, 2L),
                     Col4 = c(4L, 3L, 7L, 1L, 1L)),
                row.names = c(NA, -5L), class = "data.frame")

2.解决方案使用dplyr

library(dplyr)

df %>%
group_by(Col1, Col2) %>%
summarise(Col3 = sum(Col3),
          Col4 = sum(Col4))

回报:

   Col1 Col2   Col3  Col4
  <int> <chr> <int> <int>
1    10 A        11     7
2    30 B         2     7
3    45 C         7     2

推荐阅读