2013-04-04 64 views
3

我需要使用數據讀取多個文件,但無法使其工作。在R中打開100個文件

例如:我有6個名爲ASCII文件 「雨,風,等等......」

這是我的想法:

namelist<-c("rain","wind","sunshine hour","radiation","soil moisture","pressure") 
for (i in 1:6){ 
metedata<-read.table('d:/namelist[i].txt') 
metedata 
} 

但沒有奏效。我該怎麼辦?

回答

8

試試這個:

namelist<-c("rain","wind","sunshine hour","radiation","soil moisture","pressure") 
for (name in namelist){ 
metedata<-read.table(paste0('d:/',name,'.txt') 
metedata 
} 
+0

謝謝;在你的建議下,我解決了這個問題 – TOPMAD 2013-04-04 12:55:36

+0

但是這會在每個循環上通過循環覆蓋'metedata'。也許把它作爲一個列表,所以'metedata [[j]] < - read.table(paste0('d:\',namelist [j],'.txt')'。基本上Paul在他的回答中寫道。 – 2013-04-04 13:41:17

3

或將其讀入使用lapply列表。假設你的工作目錄中的文件的位置:

dat = lapply(list.files(pattern = "txt"), read.table) 

這使得在您的工作目錄中的所有文件.txt的名單,並呼籲他們read.table,返回其內容的列表。

或者直接閱讀到一個大data.frame:

library(plyr) 
dat = ldply(list.files(pattern = "txt"), read.table)