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

如何在R中将重复行的数值合并求和为单行

高效实现按Genus分组求和的R方法

当处理大数据量时,base R的aggregate函数效率不足,以下两种方法能显著提升分组求和的速度:

方法一:使用dplyr(tidyverse生态)

借助dplyr的分组聚合语法,代码简洁且性能优化:

library(dplyr)

# 读取数据
count <- read.csv("count_data.csv", header = TRUE)

# 按Genus分组,对所有数值列求和
shl <- count %>%
  group_by(Genus) %>%
  summarise(across(where(is.numeric), sum)) %>%
  ungroup() # 可选,取消数据的分组状态
  • across(where(is.numeric))会自动识别所有数值型列并应用求和操作,无需手动指定列名
  • 若需指定特定列,可替换为across(c(A, B, C, D), sum),进一步提升效率

方法二:使用data.table(大数据场景首选)

data.table专为大数据处理设计,读取和聚合速度均优于base R和dplyr:

library(data.table)

# 用fread快速读取大文件(比read.csv高效)
count <- fread("count_data.csv")

# 按Genus分组,对其余列求和
shl <- count[, lapply(.SD, sum), by = Genus]
  • .SD指代除分组列(Genus)外的所有列,lapply(.SD, sum)对这些列逐一求和
  • 若需指定列,可添加.SDcols = c("A", "B", "C", "D")参数,仅对目标列计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 23:02:14