You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 05:17:29