Stargazer Rmarkdown : LaTeX Error if align is set to TRUE

标签 r knitr r-markdown pandoc stargazer

我正在使用 stargazer,我想为一个简单的 lm 对象生成 LaTeX 输出。问题是我无法设置 align = TRUE 而不出现错误。

LaTeX Error: \caption outside float.

我查了一下,消息说的是错误的。将 Stargazer 输出直接复制到 Latex 文档中效果很好。将其复制到 rmarkdown 文档中会产生相同的错误(这并不奇怪,但我只是想确定一下)。经过一番尝试后,我发现如果删除了重要性星号(*)(或者精确地说是^{***}),它就可以在rmarkdown中工作。但是,stargazer 默认生成它们,它们也是输出的重要组成部分。

有办法让它发挥作用吗?

---
header-includes:
- \usepackage{dcolumn}
output: pdf_document
---

## R Markdown
```{r, include = FALSE}
library(stargazer)
df <- data.frame(x = 1:10 + rnorm(100),
                 y = 1:10 + rnorm(100))
reg <- lm(y ~ x, data = df)
```

```{r, results='asis', echo = FALSE}
stargazer(reg, header = FALSE, align = TRUE)
```

最佳答案

在 Linux 系统上,将 stargazer 包装在 invisiblesuppressMessages 中可以抑制渲染的垃圾。不幸的是,这个解决方案似乎不适用于 Windows 计算机。

---
header-includes:
- \usepackage{dcolumn}
output: pdf_document
---

## R Markdown
```{r, include = FALSE}

library(stargazer)
df <- data.frame(x = 1:10 + rnorm(100),
                 y = 1:10 + rnorm(100))
reg <- lm(y ~ x, data = df)
```

```{r, results='asis', echo = FALSE}
invisible(stargazer(reg, header = FALSE, align = TRUE))
# suppressMessages(stargazer(reg, header = FALSE, align = TRUE)) # also works
```

enter image description here

原因是(来自帮助页面)

stargazer uses cat() to output LaTeX/HTML code or ASCII text for the table. To allow for further processing of this output, stargazer also returns the same output invisibly as a character vector.

我们使用 suppressMessagesinvisible 来确保仅渲染第一个输出(由 cat 生成)。当 rmarkdown 尝试使用 print 而不是 cat

渲染字符向量输出时,它会变成垃圾

关于Stargazer Rmarkdown : LaTeX Error if align is set to TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38836729/

相关文章:

r - 根据 R 中的名称从 data.frames 列表中删除 data.frame

r - Shiny 中的 Highcharts 事件量表

r - 使用 gee() : NA/NaN/Inf in foreign function call (arg 3) 拟合模型时出错

r - 使用 "\n"在 knitr::kable 表格单元格中包装文本

r - 使用 R/knitr 自动生成 LaTeX Beamer 幻灯片

html - 在 R Markdown 文件中包含 HTML 文件?

r - ffbase::as.character 中的 "by"参数有什么作用?

rstudio - 使用 R markdown 编织 Word .doc 时将表格标题放在顶部

r - 在Shiny-Server中发布后如何在Rmarkdown中启用表情符号以显示

Rmarkdown Error=TRUE 输出打印在 HTML 输出上