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

如何用R的sjPlot包tab_model将多单变量模型合并为单列表格?

解决单变量模型表格合并与LaTeX导出问题

方案一:使用modelsummary包(推荐,简洁高效)

modelsummary专门针对多模型表格输出做了优化,支持直接将多个模型按行合并(单变量模型对应一行),无需手动整理数据。

1. 批量构建单变量GEE模型

先把18个预测变量整理成列表,用循环批量生成模型:

library(geepack)
library(modelsummary)

# 替换为你的18个预测变量名称
predictors <- c("var1", "var2", "var3", ..., "var18")

# 批量生成GEE模型
gee_models <- lapply(predictors, function(var) {
  formula <- as.formula(paste("hospitalization ~", var))
  geeglm(formula, id = record_id, data = dades, family = binomial, corstr = "ar1")
})

# 给模型命名(对应预测变量,方便表格识别)
names(gee_models) <- predictors

2. 生成合并格式的表格

通过shape="rbind"参数将所有模型结果合并到同一组列中,还可直接设置统计量、列名,以及转换为优势比(二项式模型常用):

modelsummary(gee_models,
             shape = "rbind",          # 按行合并模型
             coef_omit = "(Intercept)",# 隐藏截距项
             statistic = c("conf.int", "p.value"), # 显示置信区间和P值
             col_labels = c("OR值", "95%置信区间", "P值"), # 自定义中文列名
             exponentiate = TRUE       # 将对数优势比转换为OR值
)

3. 导出为LaTeX格式

直接通过output参数指定输出文件即可:

modelsummary(gee_models,
             shape = "rbind",
             coef_omit = "(Intercept)",
             statistic = c("conf.int", "p.value"),
             col_labels = c("OR值", "95%置信区间", "P值"),
             exponentiate = TRUE,
             output = "gee_single_var_table.tex" # 输出LaTeX文件
)

方案二:使用sjPlot原生函数实现

如果坚持用sjPlot,可以先提取每个模型的统计数据,再手动合并后生成表格:

1. 批量提取模型结果

library(sjPlot)
library(dplyr)

# 批量提取每个GEE模型的结果
gee_results <- lapply(seq_along(gee_models), function(i) {
  get_model_data(gee_models[[i]], show.intercept = FALSE) %>% 
    mutate(Predictor = names(gee_models)[i]) # 添加预测变量名
}) %>% bind_rows()

2. 整理数据格式

合并后调整列顺序、重命名,并将置信区间合并为一列:

gee_results_clean <- gee_results %>% 
  select(Predictor, estimate, conf.low, conf.high, p.value) %>% 
  rename(`OR值` = estimate, `95% CI下限` = conf.low, `95% CI上限` = conf.high, `P值` = p.value) %>% 
  mutate(`95%置信区间` = paste0("(", round(`95% CI下限`, 3), ", ", round(`95% CI上限`, 3), ")")) %>% 
  select(Predictor, `OR值`, `95%置信区间`, `P值`)

3. 生成表格并导出LaTeX

用tab_df函数生成表格,指定file参数导出:

tab_df(gee_results_clean, file = "gee_single_var_table.tex")

内容的提问来源于stack exchange,提问作者Mia Colomar Riutort

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:50:21