在 R-markdown 中编织时 eval(expr envir enclos) 出错

error in eval(expr envir enclos) during knit in R-markdown

我正在尝试使用 R-markdown 创建一个文档,但该文档似乎无法识别我当前工作区中的变量。

markdown 文档和工作区都在同一个工作目录中。

如何设置它以使用它们并更新文档?

当您编译 R-markdown 文档时,代码是 运行 在 "clean" R 会话中。这意味着它不会 有权访问工作区中的对象。 R-markdown 文档块只能访问在文档的另一个块或相同块中创建的对象。

解决此问题的一种方法是将工作区写入二进制文件

save.image("myWorkSpace.RData")

在编织之前,然后在你的 R-markdown 文档的第一块做

load("myWorkSpace.RData")

但我不推荐它。最好在 R-Markdown 文档中包含创建对象的代码。这意味着该文件是完全独立的,增加了可重复性。

我使用文档第一个卡盘顶部的这一行解决了这个问题。

knitr::opts_chunk$set(error = TRUE)

副作用是文档包含所有日志信息。我仍在寻找更好的方法来解决它!

您好!

如果您在 .Rmd 文件的同一代码块中包含多个 <>,则可能会发生此错误。

我 运行 加入了 knitr::opts_chunk$set(cache = TRUE) 并且对 .Rmd 中不断变化的对象进行了过多的修改。

删除缓存文件夹并再次编织文档似乎有效。