2013-01-02 100 views

回答

6

我發現擁有單個工作目錄更容易。你會發現它使用的是什麼

getwd() 

函數。通常情況下,我的工作目錄是一樣的東西:

~/colin/project1/R 

可以使用

setwd() 

您可以輕鬆地訪問使用完整路徑的其他文件將工作目錄。特別是,我發現

##List files in current directory 
list.files() 
##Give full path 
list.files(full.names=TRUE) 
##list files in the species1 directory 
list.files("species1/", full.names=TRUE) 

非常方便。

+0

thnks的建議,但對我來說問題是,我有三個不同的文件夾包含物種的文件。所有三個文件夾具有相同數量的名稱相似的文件。這三個文件夾代表不同的實驗條件,我想在循環中比較這些文件。 – Gongon

+0

這不會導致問題。查看我更新的'list.files'調用,我指定了一個目錄。 – csgillespie

+0

感謝您的回覆。 – Gongon

3

不要在循環中更改工作目錄,循環訪問目錄並使用file.path來獲得所需的文件。喜歡的東西:

for(path in c("data1","data2","data3")){ 
    for(file in c("file1.txt","file2.txt")){ 
    fullPath = file.path(path,file) 
    doSomethingWith(fullPath) 
    } 
    } 

這將遍歷data1/file1.txtdata1/file2.txt等。請注意,它還將處理不同操作系統中的路徑分隔符之間的差異 - 不要嘗試將文件路徑組件與paste一起粘貼,因爲您會弄錯它。

+0

謝謝你,只是在使用它之前要非常確定。我有超過100種在三種不同的實驗條件下處理的物種。在每個實驗中,我有12個月的數據(12列,10次觀察)。現在,在第一步中,我想看看第一次實驗中哪些物種表現糟糕(通過比較觀察值與標準值),第二步是想看看同一月的第二和第三個實驗的差異第一個實驗的物種表現不佳。 – Gongon

+0

我會寫一個函數,該函數具有物種和條件的參數,並返回該數據的完整文件路徑。然後是另一個讀取數據的函數。然後是一個比較數據的函數。等等。這個評論有點複雜。嘗試讓你的問題更具體一點,併發佈一個新問題。 – Spacedman

相關問題