Я определил функцию для обработки каждого файла csv и возвращает матрицу. Я хотел бы использовать эту функцию в цикле for для обработки всех файлов и объединения всех данных в одну большую матрицу. Но, похоже, этот код не работает.Как преобразовать несколько матриц в одну большую матрицу
filenames=dir()
bigMatrix = processEachCSV(filenames[1])
for (i in 2:length(filenames1)) {
x = processEachCSV(filenames[i])
bigMatrix=rbind[bigMatrix,x]
}
Я думаю, это потому, что я не могу rbind х и bigMatrix и присвоить его bigMatrix себя?
Что мне делать вместо этого?
Функции processEachCSV как это:
processEachCSV <- function (filename){
x = read.table(filename, header=F, sep=',', fileEncoding='UTF-8')
x$V4=as.numeric(gsub("[^0-9.]",'', as.character(x$V4)))
x$V5=as.numeric(gsub("[^0-9.]",'', as.character(x$V5)))
x$V6=substr(filename, 1, nchar(filename)-4)
colnames(x)=c('DateTime','Site','AQI','PM25','PM10','City')
x=as.matrix(x)
return (x)
}
Прочитайте все файлы в виде 'list', а затем используйте' do.call (rbind, yourList) '. – A5C1D2H2I1M1N2O1R2T1
Вы понимаете, что для использования 'rbind' вам нужно использовать'() ', а не' [] ', правильно? – A5C1D2H2I1M1N2O1R2T1