如何在R中按条件合并数据框行并对对应数值列进行求和汇总
R语言合并同名称行并汇总数值的实现方法
你修改school列取值的操作只是将对应行的学校名称改为了相同值,R不会自动对同名称行的数值列做聚合汇总,需要额外调用分组聚合函数实现需求,完整操作如下:
步骤1:统一所有学校名称为标准值
你之前只替换了ABC Uni的取值,还需要补充替换DFG U的别名:
# 替换全部别名为标准校名 df$school[df$school == 'ABC Uni'] <- 'ABC University' df$school[df$school == 'DFG U'] <- 'DFG University'
步骤2:按学校名称分组聚合数值列
可任选以下两种常用实现方式:
- 方法1:使用base R内置
aggregate函数,无需额外安装包
result <- aggregate(. ~ school, data = df, FUN = sum)
- 方法2:使用dplyr包语法,可读性更高
library(dplyr) result <- df %>% group_by(school) %>% summarise( applicant = sum(applicant), students = sum(students) )
运行后得到的result对象就是你需要的合并汇总后的结果。
内容的提问来源于stack exchange,提问作者Jei
相关产品推荐
相关产品推荐

