R语言gtsummary实现连续变量为列并按多分类变量分层汇总
R语言gtsummary转置汇总表实现方案
实现以连续变量为列、分类变量水平为行的汇总表,核心是先通过数据长宽转换,将原本的多个连续变量转为分组因子,再传入tbl_summary的by参数即可。
首先加载所需依赖包:
library(gtsummary) library(tidyverse)
基础实现代码
单分类变量生成符合要求的汇总表(以score_1为例)
tbl1 <- test2 %>% # 保留目标分类变量和所有待汇总连续变量 select(score_1, land, water, fire) %>% # 长格式转换:将连续变量堆叠为分组字段 pivot_longer(cols = -score_1, names_to = "continuous_var", values_to = "value") %>% # 按连续变量分组汇总,生成的表列对应连续变量,行对应score_1的分类水平 tbl_summary( by = continuous_var, statistic = all_continuous() ~ "{mean} ({sd})" ) %>% # 自定义第一列表头 modify_header(label = "**score_1等级**") %>% # 统一添加脚注说明统计量含义 modify_footnote(all_stat_cols() ~ "均值(标准差)")
生成的tbl1列对应land、water、fire三个连续变量,行对应low、medium、high三个分类水平,符合需求。
多分类变量生成表后合并
# 生成score_2对应汇总表 tbl2 <- test2 %>% select(score_2, land, water, fire) %>% pivot_longer(cols = -score_2, names_to = "continuous_var", values_to = "value") %>% tbl_summary( by = continuous_var, statistic = all_continuous() ~ "{mean} ({sd})" ) %>% modify_header(label = "**score_2等级**") %>% modify_footnote(all_stat_cols() ~ "均值(标准差)") # 生成score_3对应汇总表 tbl3 <- test2 %>% select(score_3, land, water, fire) %>% pivot_longer(cols = -score_3, names_to = "continuous_var", values_to = "value") %>% tbl_summary( by = continuous_var, statistic = all_continuous() ~ "{mean} ({sd})" ) %>% modify_header(label = "**score_3等级**") %>% modify_footnote(all_stat_cols() ~ "均值(标准差)") # 用tbl_stack合并三张表 final_table <- tbl_stack(list(tbl1, tbl2, tbl3)) # 查看最终结果 final_table
简化批量实现方案
避免重复写代码,可通过循环批量生成三张表后合并:
# 批量生成三张汇总表 table_list <- purrr::map(c("score_1", "score_2", "score_3"), function(col) { test2 %>% select(all_of(c(col, "land", "water", "fire"))) %>% rename(score_level = all_of(col)) %>% pivot_longer(cols = -score_level, names_to = "continuous_var", values_to = "value") %>% tbl_summary( by = continuous_var, statistic = all_continuous() ~ "{mean} ({sd})" ) %>% modify_header(label = paste0("**", col, "等级**")) %>% modify_footnote(all_stat_cols() ~ "均值(标准差)") }) # 合并得到最终表 final_table <- tbl_stack(table_list)
内容的提问来源于stack exchange,提问作者Rana。
相关产品推荐
相关产品推荐

