簡體   English   中英

Stargazer 的 Rmarkdown:如果 align 設置為 TRUE,則 LaTeX 錯誤

[英]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 包裝在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
```

在此處輸入圖片說明

原因是(來自幫助頁面)

stargazer 使用 cat() 為表格輸出 LaTeX/HTML 代碼或 ASCII 文本。 為了允許進一步處理此輸出,stargazer 還以不可見的方式返回與字符向量相同的輸出。

我們使用suppressMessagesinvisible來確保只呈現第一個輸出(由cat 產生)。 當 rmarkdown 嘗試使用print而不是cat呈現它時,字符向量輸出變成垃圾

我有同樣的問題。 我嘗試安裝最新版本的 pandoc 並解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM