2016-09-03 65 views
2

我正在親自教授R教程,並有大量的本科R新手。我也嘗試在RPub上格式化筆記,以便其他人可以輕鬆使用它們。沒有任何事情比人們錯誤指定工作目錄或將電子表格文件保存到與其工作目錄不同的地方更快地出軌。是否可以爲R定義一個跨平臺的工作目錄?

是否可以定義跨平臺通用的工作目錄?例如,一行代碼或類似

setwd(someplace that is likely to exist on every computer) 

此功能可能涉及到一些發現的地方,通常在所有計算機上,如桌面,下載文件夾,或R目錄存在的功能。

+2

將目錄設置爲相對路徑而不是絕對路徑是讓您的代碼具有可移植性的更爲普遍的方法。像'setwd(「./ working」)'可能。 – Psidom

+5

'path.expand(「〜」)'會爲您提供用戶的Windows主目錄以及類Unix平臺。 – nrussell

回答

2

一般來說最好的辦法是去爲用戶的家庭區域,

setwd("~") 
path.expand("~") 

因爲你所教的新手,一個常見的問題是,學生髮現將R包目錄~/R/,並認爲他們應該把自己的腳本這個目錄;從而造成奇怪的錯誤。爲了避免這種情況,我想去

dir.create("~/RCourse", FALSE) 
setwd("~/RCourse") 

如果你使用RStudio,你可以讓他們創建一個RStudio項目。

在過去,我遇到過這種情況不起作用。例如,有些人將他們的家庭區域作爲網絡驅動器,但無法連接到互聯網或通過防火牆。

1

你問到

某處很可能每一臺計算機

上存在,是的,R努力工作,以確保這將返回一個有效的目錄:tempdir()

但是,主要的危險可能是該目錄在會話後會消失(除非您覆蓋了最終刪除每個會話臨時目錄的默認行爲)。在此之前,它的工作。

不過,這可能很有用。我在sometimes use that下寫的臨時文件我不想凌亂在當前目錄下,或~

否則@csgillespie給你一個很好的答案,關於$HOME又名~

相關問題