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

如何用gtsummary实现基线模型居左且汇总统计在合并回归表底?

使用gtsummary生成列序正确且统计行在底部的合并回归表

问题场景

使用{gtsummary}合并基线模型与交互模型的回归表时,需要将R-squared和log-likelihood作为汇总行放在表的最后,但按常规方法给单个表格添加统计行后合并,会出现交互项price * feat位于统计行下方的错误;交换模型顺序合并虽能修正行顺序,但基线模型会被放到右侧,不符合需求。

解决方案

核心思路:先合并仅包含系数的两个模型表格,再统一添加汇总统计行到整个合并表的底部,而非给单个表格分别添加统计行。

完整代码如下:

library(gtsummary)
library(logitr)

# 拟合基线与交互模型
model1 <- logitr(
  data    = yogurt,
  outcome = "choice",
  obsID   = "obsID",
  pars    = c("price", "feat", "brand")
)

model2 <- logitr(
  data    = yogurt,
  outcome = "choice",
  obsID   = "obsID",
  pars    = c("price*feat", "brand")
)

# 生成仅含系数的单个回归表
t1 <- model1 |> tbl_regression()
t2 <- model2 |> tbl_regression()

# 合并表格后,统一添加汇总统计行至表底
tbl_merge(
  tbls = list(t1, t2),
  tab_spanner = c("**Baseline**", "**Interaction**")
) |>
  add_glance_table(
    include = c("r.squared", "logLik"),
    location = "table_body"  # 指定统计行添加到整个表格的主体底部
  )

补充:合并后调整列顺序(若需)

如果已按错误顺序合并了表格(基线在右侧),可使用modify_table_cols函数重新排列列的顺序,示例如下:

# 假设已得到合并表merged_tbl(Interaction在前,Baseline在后)
merged_tbl |>
  modify_table_cols(
    cols = c(label, starts_with("Baseline"), starts_with("Interaction"))
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:23:24