2012-09-07 40 views
3

據我所知,在R鍵設置我的工作目錄,我可以這樣做:指定與setwd目錄()

setwd("~/dir1/dir2/mydir") 

如果MYDIR是一個獨特的目錄名稱,是否有辦法沒有說明DIR1指定的工作目錄/ dir2?

感謝

+1

我解釋你的問題是想讓電腦自動找到目錄,這可能會很困難。你必須使用某種系統工具來搜索目錄(在Windows和MacOS vs Linux上,目錄可能不同,可能不一樣,也可能不存在)。在一個正確設置的Linux系統上,你可能會使用像'setwd(system(「locate mydirname」,intern = TRUE)'' –

回答

12

Sys.glob你想要做什麼:

setwd(Sys.glob("~/*/*/mydir")) 

如果你不知道它有多深嵌套,則可以使用list.filesdir

list.files(path="~", pattern="mydir", all.files=TRUE, full.names=TRUE, 
    recursive=TRUE, ignore.case=FALSE, include.dirs=TRUE) 
+3

你應該能夠構造一個允許任意數量的在找到「mydir」之前先縮減。不過,我不想把它放在我的設備上。我需要用'list.dirs()'中斷我的測試。 –

+0

我不確定... http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13_03似乎不允許加括號的子表達式(例如〜/(* /) + MYDIR「' –