2012-05-21 164 views
2

我有四個文件夾包含相同名稱的文本文件(製表符分隔),我想將所有這些文本文件導入到data.frame。例如:導入幾個文本文件到R

TopFolder = "G:\\University" 
SubFolder = list.files(TopFolder) 
#find the name of the folders in the current directory 
DateTime = rbind(read.table(paste(TopFolder,SubFolder[1],"Data.txt",sep = "\\"),sep="\t"), 
       read.table(paste(TopFolder,SubFolder[2],"Data.txt",sep = "\\"),sep="\t"), 
       read.table(paste(TopFolder,SubFolder[3],"Data.txt",sep = "\\"),sep="\t"), 
       read.table(paste(TopFolder,SubFolder[4],"Data.txt",sep = "\\"),sep="\t")) 

這個例子能正常工作,但我希望使用一個循環或其他一些功能,而不必單獨導入所有文件的生成此變量。有沒有人有什麼建議?

回答

4

這個怎麼樣?

lf = list.files(path = "G:\\University", pattern = "Data.txt", 
       full.names = TRUE, recursive = TRUE, include.dirs = TRUE) 

library(plyr) 
DateTime = ldply(lf, read.table, sep = "\t") 
+0

這很好。這怎麼可能被改變來導入幾個文本文件。說如果我想先導入Data.txt,但是想要導入以與Data.txt相同的方式存儲的Data2.txt(即在不同的文件夾中)? – user1407388

+0

你可以使用合適的正則表達式修改'list.files'中的模式,參見'regex' – baptiste