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

如何在R中同时使用sumCol与aggregate实现数据框按人员汇总求和?

解决方案:结合行求和与aggregate实现需求

思路

先计算每行中所有item列的数值总和,再通过aggregate按Persons分组,将同一人员的所有行总和累加。

代码实现

1. 构造示例数据

df <- data.frame(
  Persons = c(1,1,2,3,1),
  item1 = c(0,2,1,0,1),
  item2 = c(1,2,2,1,1),
  item3 = c(3,4,4,1,1)
)

2. 分步处理

# 新增临时列,存储每行item列的总和
df$row_total <- rowSums(df[, startsWith(colnames(df), "item")])

# 用aggregate按Persons分组,累加行总和
result <- aggregate(row_total ~ Persons, data = df, sum)

# 重命名列名匹配需求格式
colnames(result) <- c("Persons", "Items")

# 查看结果
print(result)

3. 优雅的嵌套写法(无需临时列)

result <- aggregate(
  rowSums(df[, startsWith(colnames(df), "item")]) ~ Persons,
  data = df,
  sum
)
colnames(result) <- c("Persons", "Items")

运行结果

Persons Items
1       1    15
2       2     7
3       3     2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:05:20