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

如何用R的gtsummary合并展示多组单/多变量逻辑回归结果?

在gtsummary中并列展示单/多变量逻辑回归结果的规范方法

无需手动构造tibble或拆分表格,gtsummary官方提供的tbl_merge()函数是实现这类需求的最优方案,以下以trial数据集为例演示完整流程:

1. 加载依赖与数据

library(gtsummary)
library(dplyr)
library(purrr) # 用于批量处理模型
data(trial)

2. 按stage批量构建单/多变量模型表格

单变量逻辑回归(UV)表格列表

针对每个stage的数据集,对所有自变量做单变量逻辑回归:

# 按stage拆分数据集
trial_by_stage <- trial %>% group_split(stage)

# 批量生成单变量回归表格
uv_tbl_list <- map(
  trial_by_stage,
  ~ tbl_uvregression(
    data = .x,
    method = glm,
    y = response,
    method.args = list(family = binomial),
    exponentiate = TRUE # 输出OR值而非系数
  )
)

多变量逻辑回归(MV)表格列表

针对每个stage的数据集,纳入指定自变量做多变量逻辑回归:

mv_tbl_list <- map(
  trial_by_stage,
  ~ tbl_regression(
    glm(response ~ age + marker + trt, data = .x, family = binomial),
    exponentiate = TRUE
  )
)

3. 给表格添加分组标识

为了合并后区分不同stage的UV/MV结果,给每个表格的变量列添加标签:

# 标记单变量表格
uv_tbl_labeled <- uv_tbl_list %>%
  map2(c("Stage I 单变量", "Stage II 单变量"), ~ .x %>% modify_header(label = .y))

# 标记多变量表格
mv_tbl_labeled <- mv_tbl_list %>%
  map2(c("Stage I 多变量", "Stage II 多变量"), ~ .x %>% modify_header(label = .y))

4. 合并表格并优化样式

用tbl_merge()将所有表格按变量行对齐合并,同时添加跨列标题区分UV/MV:

final_table <- tbl_merge(
  tbls = c(uv_tbl_labeled, mv_tbl_labeled),
  tab_spanner = c("**单变量回归**", "**单变量回归**", "**多变量回归**", "**多变量回归**")
)

# 可选:调整表格样式,比如加粗变量名、设置缺失值显示文本
final_table %>%
  modify_styling(columns = label, bold = TRUE) %>%
  modify_table_styling(missing_text = "-")

关键说明

  • tbl_merge()会自动匹配不同表格中的变量行,缺失的变量会填充指定的缺失文本,无需手动对齐
  • 合并后的表格仍保留gtsummary的所有样式调整能力,也可直接调用gt包的函数做更精细的自定义(如gt::tab_options())
  • 完全不需要切换到gt手动构建表格,用gtsummary的原生函数即可实现规范、高效的结果展示

内容的提问来源于stack exchange,提问作者user23499609

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:52:33