当您在 RStudio 中打开或创建项目时,工作目录会自动更改为项目的目录。但是,如果您要保存文件或在其他子目录中工作,则更改工作目录通常会很方便。在每个脚本中管理这一点可能会很痛苦。
是否有一个始终指向项目根目录的变量(也可由“Knit HTML”按钮分叉的会话读取)可以用来简化此操作?
出现“Knit HTML”按钮,将工作目录设置为 R Markdown 文件的工作目录。例如,如果您的
project.root
中有一个名为 ./Rprofile
的变量,并且在打开此脚本的情况下单击“Knit HTML”,
```{r}
getwd()
source('./Rprofile')
setwd(project.root)
getwd()
```
第一个和最后一个结果将是脚本目录,其余的将抛出错误。
回顾一下,正如您所推断的,您可以在命令行中设置 R 的工作目录,如下所示:
setwd(“~/NateProjects”)
您还可以使用 RStudio 的文件窗格导航到目录,然后从菜单将其设置为工作目录:会话 --> 设置工作目录 --> 到文件窗格位置。 (您会在那里看到更多选项)。或者在“文件”窗格中,选择“更多”并设置为工作目录。
但是,您可以做得更好并像专业程序员一样设置环境。为此,您可以选择将与一个项目(该项目是松散定义的,因为我将所有个人代码都放在一个项目下)关联的所有文件组织在一起 - 输入数据、R 脚本、分析结果、图形。事实上,RStudio 对此有内置支持。这里有一个很棒的教程,您可以看一下,它详细解释了如何逐步完成:
http://www.rstudio.com/ide/docs/using/projects
本质上,根据文档,您需要执行以下操作:
然后,一旦您在 RStudio 中创建了这个新项目,就会发生以下操作:
您可以使用包
rprojroot中的函数
find_rstudio_root_file()
将项目的根目录存储在脚本顶部:
library(rprojroot)
root.dir = find_rstudio_root_file()
setwd("other_dir")
# some code working in other dir
setwd(root.dir)
# come back to the root of the project