如何用gtsummary按time分组生成指标统计表格(无需数据重塑)
使用gtsummary生成按时间分组的指标统计表格(无需重塑数据)
直接利用gtsummary的tbl_summary()函数结合分组参数即可实现需求,无需转换数据格式。以下是完整示例:
1. 构造示例数据集
library(gtsummary) library(tidyverse) set.seed(123) # 设置随机种子保证结果可重复 df <- tibble( ID = rep(1:50, each = 2), time = rep(c("基线", "随访"), 50), measure1 = rnorm(100, 50, 10), measure2 = rnorm(100, 20, 5), measure3 = rnorm(100, 70, 15) )
2. 生成目标统计表格
# 生成按time分组的统计表格 stat_table <- df %>% tbl_summary( by = time, # 指定按time列分组 include = c(measure1, measure2, measure3), # 仅纳入指标列,排除ID statistic = list(all_continuous() ~ "{mean} ({sd})") # 定义连续变量的统计量格式:均值(标准差) ) %>% # 调整表头样式,明确分组列的统计内容 modify_header( label ~ "**指标名称**", stat_1 ~ "**{level}**<br>均值 (标准差)", stat_2 ~ "**{level}**<br>均值 (标准差)" ) %>% modify_caption("不同时间点的指标统计结果") %>% # 添加表格标题 bold_labels() # 加粗指标名称,提升可读性 # 查看表格 stat_table
关键参数说明
by = time:将表格按time的不同取值拆分为多列,实现分组统计statistic:自定义连续变量的统计量展示格式,这里指定为均值加标准差的形式modify_header:优化表头显示,让每个分组列的统计内容更清晰
运行上述代码后,将得到以指标为行、不同时间点为列,每列展示对应指标均值和标准差的统计表格,全程无需对原数据集进行重塑操作。
内容的提问来源于stack exchange,提问作者Gabriella
相关产品推荐
相关产品推荐

