2015-09-27 76 views
1

我试图用R标记创建文档,但文档似乎无法识别当前工作空间中的变量。eval(expr envir enclos)在编织R标记时出错

markdown文档和工作区都位于相同的工作目录中。

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

+3

欢迎来到SO。首先你应该阅读[这里](http://stackoverflow.com/help/how-to-ask)关于如何提出一个好问题;有一个很好的问题有更好的变化需要解决,你需要得到帮助。另一方面阅读[this](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)也不错。它解释了如何在R中创建一个可重现的示例。帮助用户通过为您的数据提供期望的输出和您迄今为止尝试的内容来帮助您。 – SabDeM

+1

Rmarkdown与关闭R基本相同,并重新打开它。它不会从当前会话中读取任何内容。如果你想加载内容,你需要在Rmarkdown文件中显式加载它们。 – jeremycg

回答

0

当您编译R标记文档时,代码在“干净”R会话中运行。这意味着它将而不是有权访问工作区中的对象。 R-markdown文档块只能访问在另一个文档块或同一块中创建的对象。解决此

一种方法是将工作区写出二进制文件

save.image("myWorkSpace.RData") 

针织之前,然后在您的R-降价文件的第一块做

load("myWorkSpace.RData") 

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

+0

谢谢你的回复,@atiretoo。事实上,我之前曾尝试过,但我一直在收到错误。但是,这次读取:“readChar中的错误”。我现在正在研究它,看看我能否得到这个工作。 关于在块中创建对象,在这种特殊情况下,我试图在文档中绘制很长处理的结果。无论哪种方式,我都需要将data.frames加载到R-markdown中,如前所述,它也不起作用。 感谢您的建议。我会从现在开始努力朝这个方向努力。 –

1

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

knitr::opts_chunk$set(error = TRUE) 

其副作用是文档具有所有日志信息。我仍然在寻找更好的解决方法!

问候!

+0

解决了我的问题。谢谢! –

+0

此解决方案仅显示错误并继续构建文档,它本身并不修复错误,因此您的文档可能不完整(除非错误来自残余代码)。 – Matt

0

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

相关问题