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

在R语言中为统计表格添加ID列与求和汇总列的实现方案咨询

实现方案

你原来的代码直接对table生成的列联表用as.data.frame()会输出长格式数据,没法直接做逐行求和,下面给你两种符合要求的实现方式:

方案1:原生table+rowSums实现(最简写法,推荐优先用)

# 生成id对role的列联表
n.actors <- table(IMDB_players$id, IMDB_players$role)
# 直接构造目标数据框
n.actors.df <- data.frame(
  ID = rownames(n.actors), # 第一列设为ID,对应原来的id值
  n.actors, # 保留各role的统计列
  all = rowSums(n.actors) # 逐行求和得到汇总列
)
# 验证结果
head(n.actors.df)

方案2:aggregate函数实现(符合你要求的aggregate类函数写法)

# 按id分组统计各role的出现频次
n.actors.df <- aggregate(
  . ~ id,
  data = IMDB_players,
  FUN = length
)
# 新增逐行求和的all列,跳过第一列的ID字段计算
n.actors.df$all <- rowSums(n.actors.df[, -1])
# 修改第一列列名为ID
colnames(n.actors.df)[1] <- "ID"
# 验证结果
head(n.actors.df)

补充说明

  • 两种方案输出的都是宽格式表格:第一列为ID,后续每列对应一个role的统计值,最后一列为all汇总值
  • 方案1代码更短、运算效率更高,适合处理大数据量的统计场景
  • 方案2用aggregate实现,逻辑更直观,方便后续调整分组统计的规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:06:04