R: Циклы для обработки большого набора данных (ГБ) в кусках?
У меня есть большой набор данных в ГБ, который я должен обработать, прежде чем анализировать их. Я попытался создать соединитель, который позволяет мне циклически проходить по большим наборам данных и извлекать порции за раз. Это позволяет мне помещать в карантин данные, удовлетворяющие некоторым условиям.
Моя проблема заключается в том, что я не могу создать индикатор для соединителя, который указывает, что он является нулевым, и выполнить close (соединитель), когда достигнут конец набора данных. Более того, для первого фрагмента извлеченных данных мне придется пропустить 17 строк, поскольку файл содержит заголовок, который R не может прочитать.
Ручная попытка, которая работает:
filename="nameoffile.txt"
con<<-file(description=filename,open="r")
data<-read.table(con,nrows=1000,skip=17,header=FALSE)
data<-read.table(con,nrows=1000,skip=0,header=FALSE)
.
.
.
till end of dataset
Поскольку я хотел бы избежать ручного ввода вышеуказанной команды до тех пор, пока не достигну конца набора данных, я попытался написать цикл для автоматизации процесса, который не увенчался успехом.
Моя попытка с циклами не удалась:
filename="nameoffile.txt"
con<<-file(description=filename,open="r")
data<-read.table(con,nrows=1000,skip=17,header=FALSE)
if (nrow(rval)==0) {
con <<-NULL
close(con)
}else{
if(nrow(rval)!=0){
con <<-file(description=filename, open="r")
data<-read.table(conn,nrows=1000,skip=0,header=FALSE)
}}