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

如何使用两个分组变量为R数据框添加分组总计行?

解决方案

下面提供两种高效实现需求的方法,均基于R语言常用的数据处理工具:

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

适合需要灵活自定义逻辑的场景,通过分组后为每个组追加总计行,再重新组合数据框:

library(dplyr)

data_with_totals <- data %>%
  group_by(Group) %>%
  group_modify(~ bind_rows(.x, 
                           tibble(Gender = "Total", 
                                  Y = sum(.x$Y), 
                                  N = sum(.x$N)))) %>%
  ungroup()

print(data_with_totals)

逻辑说明

  • group_by(Group):按Group列进行分组
  • group_modify:对每个分组单独执行操作,用bind_rows将原分组数据与手动构造的总计行合并(总计行的Gender设为"Total",Y和N取分组内的求和值)
  • ungroup():取消分组状态,恢复普通数据框格式

方法2:使用janitor包(更简洁)

janitor包的adorn_totals函数专门用于添加各类总计行,配合分组操作可以快速实现需求:

library(janitor)
library(dplyr)

data_with_totals <- data %>%
  group_by(Group) %>%
  adorn_totals("row", name = "Total") %>%
  ungroup()

print(data_with_totals)

逻辑说明

  • adorn_totals("row", name = "Total"):在每个分组的末尾添加一行总计,指定该行的Gender值为"Total",自动对数值列(Y和N)求和
  • 分组后执行该函数,会自动为每个Group生成独立的总计行

两种方法最终输出结果均与你期望的格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:02:08