如何在R(dplyr)或Excel中合并DataFrame重复行并求和?
重复行合并求和的解决方案(dplyr + Excel)
没问题!不管是用dplyr写代码还是Excel手动操作,都能轻松解决这个重复行合并求和的需求,我给你分别讲清楚:
一、用dplyr快速处理
当然有合适的函数!dplyr里的group_by() + summarise()组合就是专门干这个的,步骤非常直观:
- 用
group_by(Data)把所有Data列值相同的行归为一组 - 用
summarise()配合across()对每组里的数值列批量求和
给你写个可以直接用的代码示例:
library(dplyr) # 假设你的原始数据框名为df merged_df <- df %>% group_by(Data) %>% # 对V1到V4列求和,.groups = "drop"是把结果转回普通数据框 summarise(across(V1:V4, sum), .groups = "drop")
如果你的数值列不是连续的,或者想自动匹配所有数值列,还可以用更灵活的写法:
merged_df <- df %>% group_by(Data) %>% # 自动识别所有数值列并求和 summarise(across(where(is.numeric), sum), .groups = "drop")
二、Excel手动合并求和
如果不想写代码,Excel里也有两种简单的方法:
方法1:删除重复值 + SUMIF函数
- 选中整个数据区域(包含表头),确保没有空行空列
- 点击数据选项卡 → 删除重复值,弹出窗口后只勾选
Data列,点击确定——这一步会保留每个Data值的唯一行 - 在唯一行的V1单元格输入公式:
=SUMIF($A$2:$A$101, A120, $B$2:$B$101)(这里假设原数据在A2:E101,唯一值从A120开始),然后把公式向右拉到V4,再向下拉到所有唯一行 - 最后把求和结果复制粘贴为数值,替换空值即可
方法2:分类汇总功能(更高效)
- 先按
Data列排序:点击数据选项卡 → 排序,选择Data列进行升序/降序排序 - 点击数据选项卡 → 分类汇总,在弹出窗口中设置:
- 分类字段:选择
Data - 汇总方式:选择
求和 - 选定汇总项:勾选V1、V2、V3、V4
- 分类字段:选择
- 点击确定后,Excel会自动生成合并求和的结果,还能通过左侧的折叠按钮查看原始明细
内容的提问来源于stack exchange,提问作者CodingIsHardMan
相关产品推荐
相关产品推荐

