使用tbl_summary能否同时展示变量的主层级与子层级汇总统计数据
实现方案
你需要的层级汇总效果可以通过gtsummary内置的tbl_hierarchical()函数实现,该函数专门用于生成带父子层级分类的汇总表,可同时输出父类(你定义的diamond_cat)和子类(原生clarity)的统计结果。
完整可运行代码
library(gtsummary) library(forcats) library(tidyverse) data(diamonds) # 生成自定义父分类 diamonds$diamond_cat <- fct_collapse(diamonds$clarity, "Internally flawless" = "IF", "Very very slightly included" = c("VVS1", "VVS2"), "Very slightly included" = c("VS1", "VS2"), "Slightly included" = c("SI1", "SI2"), "Included" = "I1") # 构造层级映射:子分类clarity对应所属的父分类diamond_cat clarity_hierarchy <- diamonds %>% distinct(clarity, diamond_cat) %>% deframe() # 生成层级汇总表 diamonds %>% select(clarity) %>% tbl_hierarchical( hierarchy = clarity_hierarchy, label = list(clarity ~ "钻石净度"), statistic = all_categorical() ~ "{n} ({p}%)" )
效果说明
生成的表格会自动按你定义的diamond_cat分组展示:
- 每个父分类行显示该组的合计样本量与占比
- 父分类下方自动缩进展示所属
clarity子类的样本量与占比 - 整体样式和默认
tbl_summary()输出完全一致,支持后续用gtsummary系列函数调整格式。
内容的提问来源于stack exchange,提问作者Abbey A.
相关产品推荐
相关产品推荐

