2014-07-10 53 views
-1

我想選擇一些特定的目錄並從每個目錄中讀取一個特定的文件。如何選擇目錄列表並從這些目錄中讀取文件R

這裏是目錄和文件

|-out_original 
|-----result_file 
|-out_20percent_ds 
|-----result_file 
|-out_40percent_ds 
|-----result_file 
|-out_60percent_ds 
|-----result_file 
|-out_80percent_Ds 
|-----result_file 

代碼

setwd("/home/data/proj/") 
datatype = c("20","40","60","80","original") 
filenames=as.vector(c(0)) 

for (i in 1:length(datatype)) 
{ 
    if(i <= 5){ 
     filenames[i]=paste0("out_",datatype[i],"percent_ds/") 
    } 

    else{ 
     filenames[i]=paste0("out_",datatype[i]) 
    } 
} 

我怎樣才能到變量保存文件從每個目錄的例子嗎?

+0

我想你的意思是「將變量保存到文件中」。你有什麼樣的變量,你想把它們存儲在哪種文件中? –

+0

問題是什麼?爲什麼簡單的寫入(x,file)(或write.csv或類似的)失敗?您是否需要創建目錄(請參閱?dir.create)? – Martin

+0

因此,經過一番討論,似乎問題是在多個製表符分隔的文件中閱讀。 –

回答

1

嘗試使用list.files。如果工作目錄是你出的根目錄,然後一些鏈接,這將工作:

my.files <- 
    list.files(path = "./", pattern = "result_file", 
      full.names = TRUE, recursive = TRUE) 

這遞歸搜索文件包含在給定的path模式"result_file"名。 pattern可以是任何正則表達式,並且只返回與此正則表達式匹配的文件。

然後,您可以閱讀使用的東西你的文件,如

ans <- lapply(my.files, read.table) 

假設你的數據表格。