You need to enable JavaScript to run this app. R语言跨多主管列汇总Exp总和的apply族实现方法咨询
优惠活动
大模型
产品
解决方案
定价
更多

R语言跨多主管列汇总Exp总和的apply族实现方法咨询

apply族实现主管管辖费用汇总

不需要对两列主管分别做分组、拼接、二次汇总的重复操作,apply族可以直接基于主管在两列的出现位置匹配对应费用值,实现更简洁。

实现代码

你构造的df中存在展示笔误(表格表头把Supv2写为Sup2),代码运行时直接用原构造的列名即可:

# 提取两列主管数据
supv_cols <- df[, c("Supv1", "Supv2")]
# 获取所有去重的主管名单
all_sup <- unique(unlist(supv_cols))

# sapply遍历每个主管,累加对应关联行的Exp值
total_exp <- sapply(all_sup, function(target_sup) {
  sum(df$Exp[supv_cols == target_sup])
})

# 整理为标准data.frame格式
result_df <- data.frame(
  Sup = names(total_exp),
  total.exp = as.numeric(total_exp),
  row.names = NULL
)

输出效果

运行代码后得到的结果和你预期完全匹配:

  • d: 31
  • k: 30
  • j: 10
  • an: 10
  • a: 21

对比原实现的优化点

  • 去掉了两次group_by、两次summarise、rbind拼接、最后再二次汇总的重复流程,逻辑更直接
  • 纯base R实现,无额外依赖,运行效率和tidyverse方案相当
  • 自动兼容主管出现在任意层级列的场景,不需要单独处理列的归属逻辑

内容的提问来源于stack exchange,提问作者Chakravarthy G Kalyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 00:06:04