You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言按指定列值合并多行并对其余对应列求和的实现咨询

R语言分组聚合求和实现方案

首先构造和你示例一致的测试数据集,可直接运行验证:

df <- data.frame(
  Country = c(rep("Austria", 3), rep("Belgium", 2)),
  A = c(1,5,2,6,8),
  B = c(1,2,8,9,1),
  C = c(4,6,1,9,9),
  D = c(1,1,2,3,2)
)

方法1:基础R实现(无需安装第三方包)

用内置aggregate函数即可快速实现,代码最简洁:

result <- aggregate(. ~ Country, data = df, FUN = sum)

方法2:dplyr包实现(tidyverse生态常用方案,可读性高)

适合习惯tidyverse语法的用户:

# 未安装包可先运行 install.packages("dplyr")
library(dplyr)

result <- df %>%
  group_by(Country) %>%
  summarise(across(everything(), sum))

如果只需要对指定列求和,将everything()替换为c(A,B,C,D)即可。

方法3:data.table实现(适合超大数据集,运算效率更高)

处理数十万行以上的数据集时优先选择:

# 未安装包可先运行 install.packages("data.table")
library(data.table)
setDT(df)

result <- df[, lapply(.SD, sum), by = Country]
  • 注意:如果数据集存在缺失值NA,求和会返回NA,可在sum参数中添加na.rm = TRUE忽略缺失值计算,例如sum(na.rm = TRUE)。

所有方法运行后得到的result即为你需要的目标数据集:

CountryABCD
Austria811114
Belgium1410185

内容的提问来源于stack exchange,提问作者Thomas Walsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 04:39:03