Stargazer的Rmarkdown:如果align设置为TRUE,LaTeX会出错

时间:2016-08-08 19:05:08

标签: r knitr r-markdown pandoc stargazer

我正在使用stargazer,我希望为简单的LaTeX对象生成lm输出。问题是我无法设置align = TRUE而不会收到错误。

  

LaTeX错误:\浮动之外的标题。

我查了一下,消息说错了。将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)
```

2 个答案:

答案 0 :(得分:1)

在Linux系统上,将{* 1}}或invisible内的观星者包装起来可以抑制否则会被渲染的垃圾。不幸的是,这个解决方案似乎不适用于Windows计算机。

suppressMessages

enter image description here

原因是(来自帮助页面)

  

stargazer使用cat()输出LaTeX / HTML代码或ASCII文本   表。为了进一步处理这个输出,观星者也是   返回与字符向量不可见的相同输出。

我们使用--- 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 ``` suppressMessages来确保只渲染第一个输出(由cat生成)。当rmarkdown尝试使用invisible呈现它时,字符向量输出变为垃圾,而不是print

答案 1 :(得分:0)

我有同样的问题。我尝试安装最新版本的pandoc并解决了问题。