Lectura rápida de tablas muy grandes como marcos de datos
Tengo tablas muy grandes (30 millones de filas) que me gustaría cargar como marcos de datos en R.read.table()
tiene muchas características convenientes, pero parece que hay mucha lógica en la implementación que ralentizaría las cosas. En mi caso, asumo que conozco los tipos de columnas antes de tiempo, la tabla no contiene ningún encabezado de columna o nombre de fila, y no tiene ningún carácter patológico del que deba preocuparme.
Sé que leer en una tabla como una lista usandoscan()
puede ser bastante rápido, por ejemplo:
datalist <- scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0)))
Pero algunos de mis intentos de convertir esto en un marco de datos parecen disminuir el rendimiento de lo anterior en un factor de 6:
df <- as.data.frame(scan('myfile',sep='\t',list(url='',popularity=0,mintime=0,maxtime=0))))
¿Hay una mejor manera de hacer esto? ¿O posiblemente un enfoque completamente diferente del problema?