[英]Rmarkdown of Stargazer: LaTeX Error if align is set to TRUE
我正在与stargazer
,我想为一个简单的lm
对象生成LaTeX
输出。 问题是我无法设置align = TRUE
而不会出错。
LaTeX 错误:\\caption 外浮动。
我检查了它,消息说的是错误的。 将Stargazer
输出直接复制到 Latex 文档中可以正常工作。 将其复制到rmarkdown
文档中会产生相同的错误(这并不奇怪,但我只是想确定一下)。 在玩了一会儿之后,我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 包装在invisible
或suppressMessages
可以抑制否则会呈现的垃圾。 不幸的是,此解决方案似乎不适用于 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
```
原因是(来自帮助页面)
stargazer 使用 cat() 为表格输出 LaTeX/HTML 代码或 ASCII 文本。 为了允许进一步处理此输出,stargazer 还以不可见的方式返回与字符向量相同的输出。
我们使用suppressMessages
或invisible
来确保只呈现第一个输出(由cat 产生)。 当 rmarkdown 尝试使用print
而不是cat
呈现它时,字符向量输出变成垃圾
我有同样的问题。 我尝试安装最新版本的 pandoc 并解决了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.