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

modelsummary与kableExtra兼容性问题:LaTeX表格生成故障

解决modelsummary与kableExtra版本兼容的LaTeX表格生成方案

以下是几个可行的解决思路,针对版本更新后出现的兼容性问题:

方案1:使用modelsummary原生LaTeX输出+手动样式调整

直接生成纯LaTeX代码,绕过kableExtra的调用,后续在LaTeX文档中或R内补充样式:

library(modelsummary)

# 拟合示例模型
mod1 <- lm(mpg ~ cyl + hp, data = mtcars)
mod2 <- lm(mpg ~ cyl + hp + wt, data = mtcars)

# 生成纯LaTeX表格并保存
latex_code <- modelsummary(list(mod1, mod2), output = "latex", booktabs = TRUE)
writeLines(latex_code, "model_table.tex")
  • 若需要样式调整,可在LaTeX文档中添加\usepackage{booktabs}(modelsummary默认依赖),或手动插入\centering、列宽设置等命令;也可通过modelsummary的fmt、coef_map、caption等参数预先调整表格内容。

方案2:降级到兼容的版本组合

回退到之前能正常运行的版本配对(比如modelsummary 1.x系列搭配kableExtra 1.x系列):

# 安装指定版本的modelsummary(示例版本,可根据需求替换)
install.packages("https://cran.r-project.org/src/contrib/Archive/modelsummary/modelsummary_1.3.0.tar.gz", repos = NULL, type = "source")
# 安装对应兼容的kableExtra版本
install.packages("https://cran.r-project.org/src/contrib/Archive/kableExtra/kableExtra_1.3.4.tar.gz", repos = NULL, type = "source")
  • 可通过CRAN归档页面查询历史版本,找到匹配的稳定组合。

方案3:改用gt包作为中间层生成LaTeX

用modelsummary输出gt格式表格,再转成LaTeX,替代kableExtra:

library(modelsummary)
library(gt)

mod1 <- lm(mpg ~ cyl + hp, data = mtcars)
mod2 <- lm(mpg ~ cyl + hp + wt, data = mtcars)

# 生成gt表格并转为LaTeX
gt_table <- modelsummary(list(mod1, mod2), output = "gt")
gt_table %>%
  tab_options(table.width = pct(100), row.striping.include_table_body = TRUE) %>%
  as_latex() %>%
  writeLines("gt_model_table.tex")
  • gt包支持丰富的样式自定义,转LaTeX后输出为纯LaTeX代码,无格式混杂问题。

方案4:手动提取模型结果+直接使用kableExtra

绕过modelsummary的接口,用broom提取模型系数后直接调用kableExtra生成LaTeX:

library(kableExtra)
library(broom)
library(dplyr)
library(tidyr)

mod1 <- lm(mpg ~ cyl + hp, data = mtcars)
mod2 <- lm(mpg ~ cyl + hp + wt, data = mtcars)

# 提取并整理模型结果
tidy1 <- tidy(mod1) %>% mutate(Model = "Model 1")
tidy2 <- tidy(mod2) %>% mutate(Model = "Model 2")
combined <- bind_rows(tidy1, tidy2) %>%
  pivot_wider(names_from = Model, values_from = c(estimate, std.error, p.value))

# 生成LaTeX表格
combined %>%
  kable(format = "latex", booktabs = TRUE, caption = "Regression Results") %>%
  kable_styling(latex_options = c("striped", "hold_position")) %>%
  writeLines("kable_model_table.tex")
  • 这种方式完全手动控制数据流程,避免两个包的接口冲突,适合需要高度自定义的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:29:49