2016-02-12 80 views
0

我通常在Windows和Mac之间切换,同时从Google Drive访问我的R代码。当我在我的台式机和笔记本电脑之间切换时,我需要做的重复性任务之一是(取消)将文件路径注释到我的谷歌驱动器所在的相应目录。任何人都可以共享一个自动化代码如何做到这一点?我已经在Stata做这个了。如何实现工作目录更改的自动化

+1

我已经通过创建Rstudio项目文件并访问/写入与该项目文件夹相关的所有文件来解决此问题。它不依赖于操作系统。 –

+1

[在R中检测操作系统(例如,用于自适应.Rprofile文件)]的可能重复](http://stackoverflow.com/questions/4463087/detecting-operating-system-in-reg-for-adaptive-rprofile-files) –

+3

值得一提的是,在R语言的介绍材料中,控制流语法是'if(cond)x else if(cond2)y'。 – Frank

回答

4

通常情况下,每一个,我开始我使用的是“配置式” R档看起来或多或少喜欢这个项目或分析:

.job <- list() 

## rootDir in my laptop 
.job$base_data_dir <- file.path ("", "home", "dmontaner", "datos") 

## rootDir in my server 
##.job$base_data_dir <- file.path ("", "scratch", "datos") 

在这个“配置”文件中,我设置了保存每台机器中数据的根目录。我在每台机器上都保存了一个不同的“配置”文件,不要通过Dropbox同步它们。

然后我用这条线开始我的[R脚本:

try (source (".job.r")) 

,当我必须解决我做的任何文件或文件夹:

setwd (file.path (.job$base_data_dir, "raw_data")) 
... 
setwd (file.path (.job$base_data_dir, "results")) 

这样,如果你保持内部结构在两台机器上的数据目录中,您可以设置分配它的基本目录或根目录,并在两台机器中都可以访问数据。

此外,file.path功能负责操作系统的变化。

在R会话我称之为配置变量开始用为它是一个隐藏的变量,所以我没有看到它时,我做了ls()或类似的东西。

4

这是我的解决方案:

setwd(ifelse(.Platform$OS.type=="unix", "/Users/.../Google Drive", "C:/Users/.../Google Drive/"))