如何用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
相关产品推荐
相关产品推荐

