RStudio中用dplyr按前三列分组并按第四列求和降序排列
用dplyr实现需求的简洁方案
没问题!用dplyr来处理这个需求简直是量身定做,我给你写个清晰的实现代码,再拆解下每一步的作用:
假设你的数据框名为df,前三列分别是col1、col2、col3,第四列是需要求和的col4,代码如下:
# 先加载dplyr包(如果没安装的话先跑install.packages("dplyr")) library(dplyr) # 核心处理逻辑 result_df <- df %>% # 按前三列分组,自动筛选出所有唯一的三元组组合 group_by(col1, col2, col3) %>% # 计算每组第四列的总和,同时取消分组状态避免后续操作受影响 summarise(total = sum(col4), .groups = "drop") %>% # 按求和结果降序排列 arrange(desc(total))
关键步骤解释:
group_by(col1, col2, col3):这一步会自动把前三列完全相同的行归为一组,相当于直接提取了所有不同的三元组组合。summarise(total = sum(col4), .groups = "drop"):对每个分组计算第四列的总和,.groups = "drop"参数是为了让结果回到普通数据框状态,不会带着分组信息干扰后续操作。arrange(desc(total)):按照求和得到的total列从大到小排序,正好满足你降序排列的要求。
你只需要把代码里的列名替换成自己数据框的实际列名就行啦~
内容的提问来源于stack exchange,提问作者Ginkgo Biloba
相关产品推荐
相关产品推荐

