渲染多个 Rmarkdown 报告时出现 Pandoc 错误 1033

Pau*_*aul 6 r pandoc r-markdown

我有r一个包含循环的脚本,我在其中调用rmarkdown::render()以创建多个 HTML 报告。该过程运行良好,直到我开始生成更大的报告文件(这让我想到了内存问题......)。

几次成功迭代后,该过程停止并在 R 控制台中显示以下消息:Error: pandoc document conversion failed with error 1033

以下是该render()函数在循环中的使用方式:

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"))

}
Run Code Online (Sandbox Code Playgroud)

此处未提及此错误:https : //pandoc.org/help.html并且与此错误不对应:https : //github.com/jgm/pandoc/issues/1033。这里提到的想法rmarkdown::render() 在循环中 - 无法使用这一行分配大小的向量knitr::knit_meta(class=NULL, clean = TRUE)没有解决这个问题。

注意:我不能给出一个可重复的例子,因为我不知道问题的确切根源,我希望有人遇到同样的问题并找到解决它的方法。

会话信息:

R 版本 3.6.0 (2019-04-26)

平台:x86_64-w64-mingw32/x64(64位)

在以下环境下运行:Windows 10 x64(内部版本 18362)

[编辑] 这是我正在使用的 pandoc 版本:

>pandoc_version()
[1] ‘2.6’
Run Code Online (Sandbox Code Playgroud)

Pau*_*aul 8

这是解决错误的过程。这个想法来自@tarleb 的评论。错误 1033 不是 Pandoc 错误;这里没有引用:https : //github.com/jgm/pandoc/blob/master/MANUAL.txt#L1384

并且它不是可以解决的内存使用问题 knitr::knit_meta(class=NULL, clean = TRUE)

正如这里所建议的,更新 Pandoc 可以是解决方案。

  1. 使用rmarkdown::pandoc_version()检查当前用于生成 Rmarkdown 报告的 pandoc 版本。
  2. 访问此网站:https : //pandoc.org/releases.html并检查您使用的版本是否为最新版本。

对我来说,情况并非如此(我使用的是 Pandoc 的 v2.6,最后一个是 v2.7.3)所以我遵循了这个页面的教程:https ://pandoc.org/installing.html 。

然后我检查是否rmarkdown::pandoc_version()返回了最新版本号并重新运行了我的 R 脚本。它解决了这个问题。