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

R语言如何按data.frame的ID列分组求和数值列并删除字符串列

问题修正与实现方法

你原有代码存在两个问题:

  • summarize()内不需要加数据框前缀df$,管道操作已将数据集传入后续函数,直接引用列名即可
  • 无需逐个指定数值列求和,可通过dplyr的跨列批量操作函数一次性处理所有数值列,自动跳过字符串类型列

推荐实现(适配dplyr 1.0.0及以上版本)

library(dplyr)
df2 <- df1 %>%
  group_by(ID) %>%
  summarize(across(where(is.numeric), sum))

across(where(is.numeric), sum)会自动识别所有数值类型的列,对每列执行分组求和,字符串列不会被纳入计算,输出结果默认只保留分组键ID和所有计算后的数值列,和你需要的df2格式完全一致。


旧版dplyr兼容写法

如果你使用的是1.0.0以下版本的dplyr,可用summarise_if实现相同效果:

df2 <- df1 %>%
  group_by(ID) %>%
  summarise_if(is.numeric, sum)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:54:03