Rmarkdown: pandoc document conversion failed with

2019-01-20 12:44发布

问题:

I ran into problems while knit the pdf in Rstudio via Rmarkdown. I suppose it stems from too many digits for the value of quoted r variable outside the chunk of code.

---
title: "R Notebook"
output:
pdf_document: default
html_notebook: default
---


```{r}
x <- 11111111111111
```

Testing for `r x`.

Error is

! Missing $ inserted.
<inserted text> 
            $
l.133 Testing for 1.1111111\times

pandoc: Error producing PDF
Error: pandoc document conversion failed with error 43
Execution halted

Hope someone can help me out here.

回答1:

This happens because long numbers are transformed to scientific notation (like 1.1e11) when printed, and because this scientific notation makes use of latex math symbol \times. There are two workarounds:

  1. Disable scientific notation. This can be done with options(). Add this chunk at the beginning of the document:

    ```{r, echo=FALSE}
    options(scipen = 99)
    ```
    
  2. Print your number in a math environment with $ (this will preserve scientific notation):

    Testing for $`r x`$.