我再也无法将我的任何Rmd文件编织为PDF或Html。每次都是相同的错误消息:
第9行在evaluate_call中出错(expr,解析为$ src [[i]],envir = envir, enclos = enclos,:unused参数(include_timing = include_timing) 通话:... call_block - > block_exec - > in_dir - >评估 - > evalute_call执行暂停
第9行是打开新的R降价文件时自动生成的行:
{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
我尝试删除它,将TRUE
更改为FALSE
,然后删除部分内容。它给了我在同一行停止的相同错误消息。
答案 0 :(得分:9)
如果您仍然收到相同的错误,请使用上面相同的链接答案来更新evaluate
包。当我更新时,错误停止了。我目前正在运行3.3.1。
Yihui在knitr FAQ1中提供了指导:https://github.com/yihui/knitr/blob/master/FAQ.md
答案 1 :(得分: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。仍不确定问题是什么。
答案 2 :(得分:1)
我遇到了这个问题,经过几个小时与我的代码争论后,我刚刚更新了R中的所有软件包并修复了它!很高兴。即使使用r studio自动创建的r markdown测试文档,我也遇到了问题,但这解决了它。
答案 3 :(得分: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'))
我遇到了同样的问题,并尝试了几种方法。
顺便说一句。这是我的环境信息。
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 试用版安装了Rstudio的预览版。它在开始时运作良好。但是我安装了 MikTex 用于PDF输出。问题出来了。
答案 4 :(得分:0)
这个问题是由于knitr将其默认的“evaluate”挂钩定义为:
.default.hooks = list(
# ...
evaluate = evaluate::evaluate
# ...
)
首次安装knitr包,而evaluate-1.0(或更高版本)可用。这些版本evaluate::evaluate
采用可选的include_timing
参数。 knitr钩子代码在安装+编译时有效地缓存了evaluate::evaluate
的实现。
稍后,系统上会安装evaluate-0.9(或更早版本)。您无法再编织文档,因为knitr仍在使用其缓存的evaluate-0.10版evaluate::evaluate
- 它试图将include_timing
参数传递给evaluate::evaluate_call
。这是evaluate::evaluate_call
的evaluate-0.9版本,并且不期望include_timing
参数。 KABOOM。错误。
此处已报告(现已修复):https://github.com/yihui/knitr/issues/1441
如果您不想更新knitr,您可以选择几种解决方法:
将evaluate::evaluate
的正确版本注册为knitr“evaluate”hook:
knitr::knit_hooks$set(evaluate = evaluate::evaluate)
强制重新安装您正在使用的任何版本的knitr(使用devtools::install_github
或其他方法)。