2015-06-11 39 views
4

当我从一些目录启动R对话,R自动加载相应的工作区(如果它存在)。在完成在此工作区中的工作后,我可以决定是否要修改(保存)当前工作区。这个逻辑简单明了。R中工作空间背后的哲学是什么?

我不明白,如果是我从一些目录启动R和再由setwd()改变工作目录会发生什么。据我了解,新工作目录对应的工作空间不会被“加载”。我仍然可以看到上一个工作目录中的变量和历史记录。为什么?

其次,当我quit()R时,我用与“旧”目录对应的工作空间替换对应于“新”工作目录的工作空间图像。我是否正确解释行为?这种行为背后的逻辑是什么?我可以从R会话切换到另一个工作空间吗?

+0

我们可以禁用自动恢复项目/ sourcedocs选项/ .RData从菜单'工具> Options'。节能环保作为[项目](https://support.rstudio.com/hc/en-us/articles/200526207-Using-Projects)当我们想回来,我们离开的确切位置是伟大的。 – zx8754

回答

3

工作区存储在.RData文件中,当您启动R时会自动从当前工作目录加载工作空间。但工作目录本身(和设置它的setwd()函数)与工作空间无关。您可以通过显式指定任何.RData文件加载任何工作区:

load("c:/project/myfile.RData") 

setwd("c:/project/") 
load() 
+0

是的,因为'setwd()'在任何'load()'之后运行。 –

+0

如果您使用Rstudio或Statet并创建项目,您不应该担心工作区。 – user1436187

+1

RStudio询问您是否希望在退出前保存工作区图像。就我个人而言,我不希望大部分时间保存工作空间,因为当您使用大数据集进行研究时,它很快就会变得非常庞大,并且需要很多时间和空间来进行存储。 – cyberj0g