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

如何将gtsummary()生成的长表格拆分为多个短表格?

拆分gtsummary长表格的高效方法

当然可以拆分gtsummary生成的长表格!你之前手动拆分数据集再逐个汇总的方法虽然可行,但效率不高,还容易出现格式不一致的问题。gtsummary包里其实提供了专门的工具tbl_split()来完成这个需求,用起来更简洁高效。

方法示例

先基于你提供的数据集做基础演示:

library(gtsummary)
# 制作包含若干待汇总变量的数据集
trial2 <- trial %>% select(age, grade, response, trt) 
# 生成原始汇总表格
table1 <- tbl_summary(trial2)

1. 按指定变量组拆分

如果你想把表格拆分成「人口学+肿瘤分级」和「治疗+应答」两组,可以直接指定变量列表:

# 拆分成两个表格,每组包含2个变量
split_tables <- table1 %>% 
  tbl_split(variables = list(c(age, grade), c(response, trt)))

# 查看第一个拆分后的表格
split_tables[[1]]
# 查看第二个拆分后的表格
split_tables[[2]]

2. 每个变量单独生成表格

如果希望每个变量对应一个独立表格,结合purrr包可以快速实现,不用重复写多段汇总代码:

library(purrr)
# 遍历所有变量,逐个拆分出单独表格
split_single_var_tables <- map(colnames(trial2), ~table1 %>% tbl_split(variables = all_of(.x)))

# 逐个输出表格(比如查看年龄的汇总表)
split_single_var_tables[[1]]

3. 给拆分后的表格添加自定义标题

还可以给每个拆分后的表格设置专属标题,让输出更清晰:

split_tables_with_titles <- table1 %>% 
  tbl_split(variables = list(c(age, grade), c(response, trt))) %>%
  set_names(c("人口学特征与肿瘤分级", "治疗方案与应答情况"))

# 查看带标题的表格
split_tables_with_titles[["人口学特征与肿瘤分级"]]

为什么这个方法更好?

  • 不用重复创建多个数据集,也不用重复调用tbl_summary(),代码更简洁
  • 拆分后的表格会完全继承原始表格的格式设置(比如统计量格式、变量标签、表头样式等),避免手动汇总可能出现的格式不一致问题
  • 变量分组更灵活,你可以根据需求随意组合变量,而不是局限于单个变量拆分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 07:17:46