2013-04-04 67 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)