2014-05-18 145 views
0

我想在0123中擴展setwd。比方說dir1包含dir2。我寫下以下並運行它。擴展R函數

Swd <- function(directory){ 
     setwd("directory") 
} 

雖然我當前的工作目錄是dir1,我叫Swd(dir2)但[R引發錯誤消息

Error in setwd("directory") : cannot change working directory 

我不明白是什麼問題。

+3

使用'setwd(directory)'而不是'setwd ( 「目錄」)'。 (除非你真的想將工作目錄總是設置爲本地目錄* named *'「directory」'!) –

+0

你的函數與setwd('dir2')'有什麼不同?你是否知道,除非'dir2'包含命名子目錄的字符串,即使Josh的建議,它也不起作用? –

+0

我現在明白了。謝謝喬希和卡爾。 – SAK

回答

0

根據我的經驗,如果您在R中沒有管理權限,setwd()可能會失敗。如果命令如上所述無效,則也可能失敗。

對目錄參數名稱使用整個路徑可能會更好。例如,如果當前目錄是「〜/ Documents/R/dir1」,並且您想要更改爲「〜/ Documents/R/dir1/dir2」,則使用setwd(「〜/ Documents/R/dir1/dir2」) 。

另一種可能性是使用getwd()目錄功能。然後,您可以使用

Swd <- function(directory) { 
    setwd(paste(getwd(),directory,sep="")) 
} 

其中目錄參數可以等於「/ dir2」並且粘貼用於字符串連接。

setwd(「directory」)不起作用,因爲「directory」不是有效的路徑。如果你在linux上,試試setwd(「〜/ Documents」)並看看會發生什麼,或者在windows上使用setwd(「C:/ Users // Documents」)

+2

或者你可以使用'file.path'。 – gagolews