2016-02-12 53 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/"))