如何让gtsummary::tbl_summary()的by参数以行而非列形式展示?
解决gtsummary中
by参数内容以行形式呈现的问题 针对你需要将by参数对应的分组内容(示例中的grade)以行而非列展示,且适配变量嵌套场景的需求,可以使用tbl_strata()函数实现,具体代码如下:
library(tidyverse) library(gtsummary) trial %>% select(stage, grade) %>% # 按grade分层处理 tbl_strata( strata = grade, .tbl_fun = ~.x %>% select(stage) %>% tbl_summary() %>% # 将当前分层的grade值作为行标题 modify_header(label = paste0("**Grade: ", .y, "**")) ) %>% # 移除多余的跨列标题 modify_spanning_header(everything() ~ NA) %>% # 优化分层标题样式,增强辨识度 modify_table_styling( columns = label, rows = str_detect(label, "Grade:"), style = list( text_format("bold"), cell_borders(top = TRUE) ) )
代码说明:
tbl_strata():核心函数,按指定的grade变量分层,对每个分组独立执行汇总逻辑- 分层内仅保留待汇总的
stage变量,生成对应汇总表,并将当前分组的grade值插入为该部分的标题行 - 后续样式调整函数用于优化表格视觉效果,让分层标题更醒目,同时适配你提到的嵌套场景(特定
stage仅出现在特定grade中),不会出现无效的空值内容
内容的提问来源于stack exchange,提问作者Raoul Duke
相关产品推荐
相关产品推荐

