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

在R中基于多分组变量生成指定格式描述性表格的方法

生成层级结构描述性表格的两种方法

方法一:使用janitor + dplyr

先通过dplyr完成层级分组的均值计算,再用janitor美化表格格式:

# 加载所需包
library(dplyr)
library(janitor)

# 生成层级分组的均值汇总表
summary_table <- df %>%
  group_by(var1, var2) %>%
  summarize(var3_mean = mean(var3), .groups = "drop") %>%
  # 转为janitor的tabyl格式以美化
  tabyl(var1, var2, var3_mean) %>%
  # 可选:添加行/列总计
  adorn_totals(where = c("row", "col")) %>%
  # 格式化均值为两位小数
  adorn_rounding(digits = 2)

# 查看结果
summary_table

这段代码会生成以var1为第一层级、var2为第二层级的交叉表格,每个单元格展示对应分组下的var3均值,可按需添加总计行/列,格式规整易读。

方法二:使用gtsummary包(适配出版级表格)

gtsummary的tbl_strata()函数可快速实现层级分组汇总,自动生成结构化美观表格:

# 加载包
library(gtsummary)

# 生成层级结构的均值表格
tbl_strata(
  data = df,
  # 第一层级分组变量:var1
  strata = var1,
  # 定义每个层级内的表格逻辑:按var2分组展示var3均值
  .tbl_fun = function(data) {
    data %>%
      tbl_summary(
        by = var2,
        include = var3,
        # 定义统计量为均值(保留两位小数,如需标准差可改为"{mean} ({sd})")
        statistic = list(all_continuous() ~ "{mean}"),
        label = list(var3 ~ "var3 均值")
      )
  }
)

这段代码会生成分层表格:每个var1类别作为独立块,块内按var2类别展示var3均值。表格自带美观格式,还可通过as_gt()转为gt对象进一步自定义样式。若需调换层级顺序,只需互换strata和by的变量即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:42:36