带合计列的gtsummary表格如何用单条modify_header修改列头格式
gtsummary带合计列的分栏头与样本量分行展示实现方案
单条modify_header语句实现方法
你可以通过动态表达式判断列类型,在同一条modify_header中同时适配分组列与合计列的标签,无需拆分多步操作:
library(gtsummary) library(dplyr) # 示例数据集 trial <- select(trial, trt, age) # 最终实现代码 trial %>% tbl_summary(by = trt) %>% add_overall() %>% modify_header( update = all_stat_cols() ~ "**{dplyr::case_when(exists('level') ~ level, TRUE ~ 'Overall')}**<br>N = {N}" ) %>% as_kable()
实现说明
- 报错原因:合计列(Overall列)没有内置的
level或label动态变量,直接全局调用这两个变量会因为变量不存在抛出错误 - 上述代码原理:通过
exists('level')判断当前处理的列是否为分组列,是则调用内置的level变量取分组名,否则返回自定义的合计列名Overall,同时适配两类列的标签需求
高版本gtsummary(≥1.6.0)更简洁写法
可以直接用选择器分别指定分组列与合计列的标签,可读性更高:
trial %>% tbl_summary(by = trt) %>% add_overall() %>% modify_header( all_stat_cols(FALSE) ~ "**{level}**<br>N = {N}", stat_0 ~ "**Overall**<br>N = {N}" ) %>% as_kable()
内容的提问来源于stack exchange,提问作者maia-sh
相关产品推荐
相关产品推荐

