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

如何在R-exams生成的PDF中纳入modelsummary回归表格?

问题原因与解决方案

问题原因

  1. Knitr配置差异:exams2pdf默认未启用代码块的results='asis'选项,而modelsummary输出的是原生LaTeX代码,必须通过该选项让knitr直接将LaTeX代码插入最终TeX文件,否则会把代码本身作为普通文本输出。
  2. 编译流程逻辑不同:exams2pdf对Rmd的处理链路和直接用knitr编译有区别,它会先生成TeX中间文件,若代码块未正确配置,会跳过LaTeX代码的解析步骤,直接保留原代码内容。

推荐解决方法

方法1:调整代码块选项

在调用modelsummary的代码块中,添加results='asis'(确保LaTeX代码被解析)和echo=FALSE(可选,隐藏代码块):

{r, results='asis', echo=FALSE}
library(modelsummary)
# 拟合回归模型
mod1 <- lm(mpg ~ disp, data = mtcars)
mod2 <- lm(mpg ~ disp + hp, data = mtcars)
# 生成LaTeX格式的多模型表格
modelsummary(list(mod1, mod2), output = "latex")

方法2:手动捕获并输出LaTeX代码

如果方法1无效,可手动捕获modelsummary的输出结果,用cat()直接输出LaTeX代码,确保被exams2pdf正确识别:

{r, results='asis', echo=FALSE}
library(modelsummary)
mods <- list(lm(mpg ~ disp, mtcars), lm(mpg ~ disp + hp, mtcars))
# 捕获LaTeX表格代码
tab_latex <- modelsummary(mods, output = "latex")
# 输出代码到TeX文件
cat(tab_latex)

方法3:使用兼容性更稳定的包

若modelsummary仍存在适配问题,可改用R-exams支持更成熟的texreg或xtable包:

  • 用texreg输出多模型表格:
{r, results='asis', echo=FALSE}
library(texreg)
texreg(list(mod1, mod2), caption = "多回归模型结果", label = "tab:regression")
  • 用xtable输出单模型(多模型可手动合并或利用其多模型支持):
{r, results='asis', echo=FALSE}
library(xtable)
print(xtable(mod1, caption = "回归模型结果"), caption.placement = "top")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 00:33:13