2017-06-14 482 views
1

我有mydata.RDATA在R中使用,那么我需要加载(),这意味着我需要首先setwd()curent目录。我已经知道how to do it in R如何在R markdown中将当前文件位置设置为工作目录?

当我做R中降价:

{r echo=FALSE} dirname(parent.frame(2)$ofile) script.dir <- dirname(sys.frame(1)$ofile) setwd(script.dir)

我得到如下错误:

Error in dirname(parent.frame(2)$ofile) : a character vector argument expected calls :<Anonymous>...

+0

我真的推荐使用RStudio项目和相对路径。我也在一些遗留代码中使用'ofile'方法,但是这是非常不可靠的,取决于文件的来源,针织等。 – snaut

+0

我使用Rstudio,但从未使用过项目。我有500多个项目,然后我可以只在每个文件夹中存储.Rdata文件。 – kittygirl

+0

是的,你只需要打开项目文件,然后工作目录就会自动设置,并打开你在这个项目中最后一次打开的文件。 – snaut

回答

1

如果您.Rmd文件在一个子文件夹,你需要指定的根目录为,甚至如果你已经指定了一个工作目录setwd()甚至RSudio项目。

还好,这是因为添加下列块到您的.Rmd文件的开始,YAML之后容易:

{r "setup", include=FALSE} require("knitr") opts_knit$set(root.dir = "~/path/to/project")

~/是Linux(也许苹果机)您HOME目录。如果你在Windows上,你必须调整它。

+0

我只是想不需要输入'/ path/to/project',因为当你移动.rmd文件时它不灵活。 – kittygirl

+0

为什么你在块头中放置什么?如果它被称为“设置”,knitr会以不同的方式处理一个块吗? –

相关问题