2013-04-04 4 views
3

Мне нужно прочитать много файлов с данными, но я не могу заставить их работать.Открыть 100 файлов в R

Например: у меня есть 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

+0

Но это будет перезаписывать 'metedata' на каждом цикле через цикл. Может быть, сделать это списком, поэтому 'metedata [[j]] <- read.table (paste0 ('d: \', namelist [j], '. Txt')'. Фактически то, что написал Павел в своем ответе. –

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) 
Смежные вопросы