2012-05-21 4 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, но затем захотеть импортировать Data2.txt, который хранится так же, как Data.txt (т. Е. В разных папках)? – user1407388

+0

вы можете изменить шаблон в 'list.files' с подходящим регулярным выражением, см.'? Regex' – baptiste

Смежные вопросы