2016-08-23 144 views
0

使用RStudio中的编织按钮对我来说工作起来非常漂亮,可以处理简单文件,自动生成Rmd文件,然后生成PDF。现在我工作的一个大项目,我已经分裂目录RStudio中的R编码器:无法设置根目录结构的选项

MainProjectDir/

MainProjectDir /代码/

MainProjectDir/DataRaw/

MainProjectDir/DataWork/

getwd()为我提供MainProjectDir路径。 Code目录中的.r文件相互调用,并通过使用MainProjectDir路径中的相对路径来加载和保存数据目录中的数据。

现在,使用针织按钮的代码目录.R文件,当我得到连接错误:

错误的文件(文件名,“R”,编码=编码):无法打开连接

这里阅读答复少看一辉的页面之后,我尝试设置在knitr包root.dir选项与

knitr :: opts_knit $组(root.dir =“..”)

在按下RStudio中的编织按钮之前在控制台中。我仍然有同样的错误。也尝试了路径的绝对路径版本。我究竟做错了什么?

+0

您是否尝试过使用'rmarkdown :: render'函数? – YCR

+0

我正在使用File/Knit菜单命令,让RStudio对pandoc/knitr执行调用。适用于简单的目录结构,这就是为什么我试图找到一种方法来正确描述相对路径。你建议的流程是什么? – claudiu

+0

你有另一个脚本,你在其中使用函数rmarkdown :: render。它可以更好地控制你的环境。最好是用rm(list = ls())'来清理你的全球环境。 – YCR

回答

0

找到此解决办法在github讨论线程中的问题,添加至R代码和作品:

如果(基名(getwd())== “代码”)setwd(normalizePath( “..”))

张贴这为寻找一个快速的解决方案,但如果有人能解释什么是错的

knitr :: opts_knit $组(root.dir =“..”)

以及如何修复它请发布,我会接受他的答案。

0

不知道这是否能解决你所有的麻烦,但是你有没有看过Dean Attali的ezknitr包?它给你更多的目录灵活性。

+0

现在看,它基于该文件包应该确实允许我使用的目录结构。不过,现在我想保留使用RStudio针织按钮和原始R文件而不是Rmd的便利性,以便保持找到丑陋的解决方法。请参阅我写给Gregor上面的建议的评论。如果我只能删除setwd()... – claudiu