2010-05-24 3 views
2

Я не могу показаться, чтобы получить следующие работыR проблема применить + rbind

directory <- "./" 
files.15x16 <- c("15x16-70d.out", "15x16-71d.out") 
data.15x16<-rbind(lapply(as.array(paste(directory, files.15x16, sep="")), FUN=read.csv, sep=" ", header=F)) 

Что следует делать это довольно просто - у меня есть имя каталога, некоторые имена файлов, а также фактические файлы данные. Я вставляю имена каталогов и файлов вместе, читаю данные из файлов, а затем объединяю их все вместе в один кусок данных.

За исключением результата lapply имеет данные в [[]] - то есть доступ к ней происходит через a[[1]], a[[2]], и т.д., которые rbind, кажется, не принимают.

Предложения?

+0

Взгляните на http://stackoverflow.com/questions/2104483/how-to-read-table-multiple-files-into-a-single-table-in-r – Marek

+0

И некоторые «неточно- the-same ": http://stackoverflow.com/questions/2209258/merge-several-data-frames-into-one-data-frame-with-a-loop, http://stackoverflow.com/questions/1562124/merge-many-data-frames-from-csv-файлы – Marek

ответ

13

do.call Использование:

data.15x16 <- do.call(rbind, lapply(paste(directory, files.15x16, sep=""), 
             FUN=read.csv, sep=" ", header=F)) 

Вам также не нужен as.array - это на самом деле не делать ничего здесь.

+0

блестящий, спасибо; as.array остался без использования приложения вместо lapply - apply жаловался, что dim (X) не был положительным – Carl

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