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

如何使用stargazer生成带组别表头的分组汇总统计结果

stargazer分组输出汇总统计解决方案

以下两种实现方式均无需依赖额外包,优先推荐原生参数实现方案:

方法1:原生多数据集输入(首选)

stargazer默认支持同时传入多个数据集,会自动为每个数据集生成单独的汇总统计列,可直接通过column.labels参数设置组别表头:

# 加载依赖
library(stargazer)

# 示例:以mtcars数据集按am(变速箱类型)分组为例
# 拆分分组子集
group_auto <- mtcars[mtcars$am == 0, ]
group_manual <- mtcars[mtcars$am == 1, ]

# 输出分组汇总表
stargazer(group_auto, group_manual,
          type = "text",
          title = "车辆指标分组汇总统计",
          # 自定义组别表头
          column.labels = c("自动变速箱", "手动变速箱"),
          # 可选:自定义统计量展示维度
          summary.stat = c("n", "mean", "sd", "min", "max"),
          # 可选:自定义变量展示名称
          covariate.labels = c("里程数", "气缸数", "排量", "马力", "车重"),
          digits = 2)

方法2:预汇总后传入(适合自定义统计量场景)

如果需要输出stargazer默认不支持的统计量,可先手动完成分组统计计算,再将整理好的汇总表传入stargazer,关闭自动汇总功能即可:

library(stargazer)
library(dplyr)

# 预计算分组统计结果
summary_res <- mtcars %>%
  group_by(am) %>%
  summarise(across(c(mpg, cyl, disp, hp),
                   list(均值 = ~mean(.x, na.rm = T),
                        标准差 = ~sd(.x, na.rm = T),
                        样本量 = ~n()))) %>%
  t() # 转置为「统计项为行、组别为列」的格式

# 输出结果
stargazer(summary_res,
          type = "text",
          summary = FALSE, # 关闭默认汇总逻辑
          column.labels = c("自动变速箱", "手动变速箱"),
          rownames = TRUE)

常见优化技巧

  • 若分组数量较多,可直接用group_list <- split(mtcars, mtcars$am)批量生成所有分组的数据集列表,直接将group_list传入stargazer第一个参数即可,无需手动逐个拆分赋值。
  • 可通过summary.stat参数自定义需要展示的统计维度,支持的可选值包括n、mean、sd、min、p25、median、p75、max。
  • 输出格式可通过type参数切换,支持text(本地预览)、latex(论文排版)、html(网页展示)三类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:15:03