Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pandoc error 1033 when rendering multiple Rmarkdown reports

I have r script containing a loop in which I call rmarkdown::render() to create multiple HTML reports.The process worked well until I started to generate larger report files (which make me think about a memory problem...).

After a few successful iteration, the process stops with this message in the R console: Error: pandoc document conversion failed with error 1033.

Here is how the render() function is used inside the loop :

for (i in 1:length(random_vector)) {
  id = random_vector[i]

  knitr::knit_meta(class=NULL, clean = TRUE) # does not prevent the problem

  rmarkdown::render("my_rmd_file_that_generates_reports.Rmd", 
                    output_file = paste(id_fiche, "report.html"))

}

This error is not mentioned here : https://pandoc.org/help.html and does not correspond to this one : https://github.com/jgm/pandoc/issues/1033. The idea mentionned here rmarkdown::render() in a loop - cannot allocate vector of size using this line:knitr::knit_meta(class=NULL, clean = TRUE) is not solving this problem.

NOTE: I can not give a reproductible exemple as I do not know the precise origin of the problem, I hope someone faced the same problem and found a way to takle it.

Session info :

R version 3.6.0 (2019-04-26)

Platform: x86_64-w64-mingw32/x64 (64-bit)

Running under: Windows 10 x64 (build 18362)

[EDIT] Here is the pandoc version I am using :

>pandoc_version()
[1] ‘2.6’
like image 416
Paul Avatar asked Sep 18 '19 13:09

Paul


2 Answers

Here is the process that solved the error. The idea comes from @tarleb's comment. Error 1033 is not a Pandoc error ; it is not referenced here : https://github.com/jgm/pandoc/blob/master/MANUAL.txt#L1384.

And it is not the memory usage problem that can be solved with knitr::knit_meta(class=NULL, clean = TRUE)

As suggested here, update Pandoc can be the solution.

  1. Using rmarkdown::pandoc_version() check the pandoc version currently used to generate the Rmarkdown reports.
  2. Go on this website : https://pandoc.org/releases.html and check if the version you are using is the latest one.

For me it was not the case (I was using v2.6 of Pandoc and last one was v2.7.3) So I followed the tutorial from this page : https://pandoc.org/installing.html.

Then I checked if rmarkdown::pandoc_version() returned the latest version number and I reran my R script. It solved the problem.

like image 188
Paul Avatar answered Oct 19 '22 17:10

Paul


A small tip: what I need to add is that when I installed Pandoc for the first time, I choose private user instead of public. Thus, after input rmarkdown::pandoc_version() in R gave 2.60 still. So it is better to choose to install for public.

like image 36
Sybil He Avatar answered Oct 19 '22 17:10

Sybil He