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

R语言如何按ID列分组对数据框多列值进行求和汇总

R语言按ID分组对多列求和实现方案

不需要写循环实现多列分组求和,dplyr提供了直接适配多列场景的批量操作语法,以下是几种简洁的实现方式:

dplyr 推荐写法(适配1.0.0及以上版本)

使用across()函数搭配列选择助手,可以一次性对所有需要计算的列应用求和逻辑,完全兼容你现有的dplyr代码写法:

library(dplyr)

result <- df %>%
  group_by(ID) %>%
  summarise(across(everything(), sum)) %>%
  as.data.frame()

代码说明:

  • everything()是dplyr内置的列选择助手,会自动选中除分组列ID外的所有列,对应你数据中Var1到Var85的全部待求和字段,不需要手动逐个输入列名
  • 如果后续需要指定仅对部分列求和,可以灵活调整列选择规则,比如across(starts_with("Var"), sum)就只会对列名以Var开头的字段执行求和

旧版dplyr写法(不推荐新项目使用)

早期dplyr版本可以使用summarise_all实现相同效果,目前该函数已被标记为替代状态,优先推荐使用上面的across写法:

result <- df %>%
  group_by(ID) %>%
  summarise_all(sum) %>%
  as.data.frame()

基础R实现(无需加载第三方包)

如果不想依赖dplyr包,直接用基础R的aggregate函数也可以一行实现:

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

公式中.代表除左侧分组列ID外的所有其他列,运行后输出结果和你预期的分组求和效果完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:09:25