R Markdown在任何Rmd文件中编织时,在evaluate_call(...)发生错误

4
我无法再将我的Rmd文件编译成PDF或HTML了。每次都会出现相同的错误信息:

第9行 Error in evaluate_call(expr, parsed$src[[i]], envir = envir, enclos=enclos, : unused argument (include_timing = include_timing) Calls: ... call_block -> block_exec -> in_dir -> evalute -> evalute_call Execution halted

第9行是在打开新的R Markdown文件时自动生成的一行: {r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) 我尝试删除它,将TRUE改为FALSE,甚至删除其中的一部分。但它仍然停留在同一行并给出相同的错误信息。

1
请尝试使用 knitr::opts_chunk$set(echo = TRUE, eval = FALSE) - Xinlu
这个问题在Rstudio 1.00.12和bookdown的dev版本上没有出现。但是当我升级到Rstudio 1.00.44和bookdown 0.1的发布版本后,它就出现了。 - Junchen
knitr::opts_chunk$set(echo = TRUE, eval = FALSE) 对我来说已经修复了这个错误。 - chandler
我不明白关闭评估如何成为解决方案,难道不是包含R代码的表达式被评估的重点吗? - user1603472
5个回答

9
如果你仍然收到相同的错误,Yihui在上面链接的答案中建议更新evaluate包。当我更新后,错误停止了。我目前正在运行3.3.1。
Yihui在这里的knitr FAQ1中提供了指导:https://github.com/yihui/knitr/blob/master/FAQ.md

1
当我试图更新knitr到1.13或1.14版本时,我遇到了同样的问题。如果我尝试使用R版本3.2.x或3.3.x进行编织,就会出现相同的错误。建议使用下面的方法恢复到knitr 1.12版本。使用1.12版本我不会出现上述错误。
包含如下代码: packageurl <- "http://cran.r-project.org/src/contrib/Archive/knitr/knitr_1.12.tar.gz" install.packages(packageurl, repos=NULL, type="source") 来自此答案:getting a parser_all error in R when using knitr for converting a basic Rmd file into HTML 。仍然不确定问题所在。

1
我遇到了这个问题,经过几个小时的代码争论后,我只是更新了R中的所有软件包,问题就解决了!太开心了。即使是r studio自动创建的r markdown测试文档也出现了这个问题,但这个方法解决了它。

实际上,这个评论并不是一个答案。 - jordiburgos

0

这个问题是由于knitr将其默认的“evaluate”钩子定义为:

.default.hooks = list(
  # ...
  evaluate = evaluate::evaluate
  # ...
)

当安装了evaluate-1.0(或更高版本)时,首次安装了knitr包。这些版本具有可选的include_timing参数的evaluate::evaluate。knitr钩子代码有效地缓存了evaluate::evaluate的实现,因为它被安装+编译。

稍后,在系统上安装了evaluate-0.9(或更早版本)。您无法再编织文档,因为knitr仍在使用其缓存的evaluate-0.10版本的evaluate::evaluate - 它尝试将include_timing参数传递给evaluate::evaluate_call。这是evaluate-0.9版本的evaluate::evaluate_call,不需要include_timing参数。炸裂。错误。

这在此处报告(现已修复):https://github.com/yihui/knitr/issues/1441

如果您不希望更新knitr,则有几种解决方法可供选择:

  1. 将正确版本的evaluate::evaluate注册为knitr“evaluate”钩子:

    knitr::knit_hooks$set(evaluate = evaluate::evaluate)
    
  2. 强制重新安装您正在使用的任何knitr版本(使用devtools::install_github或其他方法)。


0

你可以尝试按照https://github.com/yihui/knitr中的建议安装来自XRAN的开发版本。

# update all existing packages first
update.packages(ask = FALSE, repos = 'http://cran.rstudio.org')
install.packages('knitr', repos = c('http://yihui.name/xran', 'http://cran.rstudio.org'))

我曾经遇到过同样的问题,并尝试了几种方法。

  1. 将knitr版本降级至1.12。虽然可以解决问题,但是不支持R Notebook功能。
  2. 更新evaluate包。不幸的是,它并没有解决问题。
  3. 重新安装软件(Rstudio、pandoc、MikTex)。也没有起作用。
  4. 安装开发版本,如上所述。最终解决了问题!

顺便说一下,这是我的环境信息。

R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Rstudio Version 1.0.44

问题的根本原因到目前为止还不清楚。在安装了 R Notebook 试用版的预览版本后,一开始它运行得非常好。然而,在我安装了 MikTex 以进行 PDF 输出之后,问题就出现了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接