如何使用gtsummary生成多连续变量的宽格式汇总表?
用gtsummary生成宽格式连续变量汇总表
实现步骤
1. 加载所需包并构造示例数据
library(gtsummary) library(tidyverse) # 构造包含多个连续变量的示例数据集 set.seed(123) df <- tibble( 年龄 = rnorm(100, 50, 10), 体重 = rnorm(100, 70, 8), 身高 = rnorm(100, 170, 6) )
2. 生成基础长格式汇总表
先用tbl_summary()生成包含目标统计量的长格式表,可自定义需要展示的统计量(比如均值±标准差、中位数四分位距、最值):
tbl_long <- df %>% tbl_summary( type = everything() ~ "continuous", # 所有变量按连续型处理 statistic = everything() ~ c("{mean} ± {sd}", "{median} ({p25}, {p75})", "{min}, {max}") # 定义统计量格式 )
3. 转换为宽格式表格
通过modify_table_body()结合pivot_wider()将长格式转为宽格式,实现统计量按行、变量按列的展示:
tbl_wide <- tbl_long %>% modify_table_body( ~ .x %>% pivot_wider( id_cols = label, # 以统计量名称为行标识 names_from = variable, # 以原数据变量名为列名 values_from = stat_0 # 提取统计量数值 ) ) %>% modify_header(label = "**统计量**") # 修改行标题为“统计量” # 输出最终宽格式表格 tbl_wide
自定义说明
- 若需调整统计量类型,直接修改
statistic参数即可,比如只保留均值和中位数,或添加样本量{n}。 - 要美化表格样式(如添加边框、调整字体),可结合
gt()包的函数进一步修改,示例:tbl_wide %>% as_gt() %>% gt::tab_options(table.border.top.style = "solid")
内容的提问来源于stack exchange,提问作者Roman Maksvytis
相关产品推荐
相关产品推荐

