如何在gtsummary生成的统计表格中新增额外的中位数计算列
问题原因
你当前的代码同时对stage和grade两个变量分组,得到的是两个变量交叉组合后的分组中位数,无法得到单个分类变量各独立层级的统计结果。
解决方案
方案1:直接用gtsummary生成目标表格(匹配文献表格样式)
gtsummary的tbl_summary可直接定制统计规则,一步生成你需要的表格:
library(gtsummary) library(tidyverse) trial %>% select(stage, grade, ttdeath) %>% tbl_summary( statistic = list( all_categorical() ~ "{n}", # 分类变量行展示样本量N ttdeath ~ "{median}" # 汇总ttdeath的中位数 ), type = list(stage ~ "categorical", grade ~ "categorical") ) %>% # 自定义列名匹配需求 modify_header( label ~ "分类层级", stat_0 ~ "N", estimate ~ "ttdeath中位数" )
方案2:手动计算各分类层级的统计量
如果需要把结果存为数据框,可以分别对每个分类变量分组计算后合并:
# 计算stage各层级统计量 stage_stats <- trial %>% group_by(stage) %>% summarise( group_name = "肿瘤分期", level = as.character(stage), N = n(), median_ttdeath = median(ttdeath, na.rm = TRUE) ) %>% ungroup() %>% select(group_name, level, N, median_ttdeath) # 计算grade各层级统计量 grade_stats <- trial %>% group_by(grade) %>% summarise( group_name = "病理分级", level = as.character(grade), N = n(), median_ttdeath = median(ttdeath, na.rm = TRUE) ) %>% ungroup() %>% select(group_name, level, N, median_ttdeath) # 合并得到最终统计量表 final_stats <- bind_rows(stage_stats, grade_stats)
内容的提问来源于stack exchange,提问作者DocProc
相关产品推荐
相关产品推荐

