2012-05-21 128 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