使用gtreg的tbl_listing()时,tbl_stack()合并表格出现偏移问题
解决表格堆叠后的偏移问题
问题根源在于tbl_summary生成的表格默认会对分类变量的子项添加缩进,而tbl_listing生成的表格无缩进设置,两者堆叠后出现列对齐偏差。只需调整tbl_summary的配置,统一列对齐规则即可修复:
library(gtsummary) library(gtreg) library(dplyr) library(tidyr) df <- structure( list(id = c("patient1", "patient2", "patient3", "patient4", "patient5"), x = c("h,a,a", "i", "i", "i,a,e", "h")), class = "data.frame", row.names = c(NA, -5L) ) df1 <- structure( list(id = c("patient1", "patient2", "patient3", "patient4", "patient5"), y = c("yes", "no", "yes", "yes", "no")), class = "data.frame", row.names = c(NA, -5L) ) # 处理第一个表格 tbl <- df |> separate_rows(x, sep = ",") |> select(x) |> count(x) |> mutate(percent = round(n/nrow(df)*100)) |> mutate(N_percent = paste0(n,"/", nrow(df), " (",percent,"%)"), .keep = "unused") |> select(x, N = N_percent) |> mutate(grouping_var = "x", .before = 1L) |> tbl_listing(df, group_by = grouping_var) |> modify_header( x ~ "**Characteristic**", N ~ "**N = 5**" ) |> modify_column_alignment(N, align = "center") |> modify_footnote(N = "n/N (%)") # 处理第二个表格:关闭缩进+统一列对齐 tbl1 <- df1 |> select(y) |> tbl_summary( type = list(y ~ "categorical"), indent = FALSE # 取消分类子项的默认缩进 ) |> modify_column_alignment(all_stat_cols(), align = "center") # 统计列居中,与第一个表格对齐 # 堆叠表格 tbl_stack( tbls = list(tbl, tbl1) )
修改后两个表格的列将完全对齐,达到预期效果。
内容的提问来源于stack exchange,提问作者TarJae
相关产品推荐
相关产品推荐

