más rápido que scan () con Rcpp?
Leer ~ 5x10 ^ 6 valores numéricos en R desde un archivo de texto es relativamente lento en mi máquina (unos segundos, y leí varios de esos archivos), incluso conscan(..., what="numeric", nmax=5000)
o trucos similares. ¿Podría valer la pena probar unRcpp
wrapper para este tipo de tarea (por ejemplo,Armadillo
tiene algunas utilidades para leer archivos de texto)? ¿O probablemente estaría desperdiciando mi tiempo por poco o ningún aumento en el rendimiento debido a una sobrecarga de interfaz esperada? No estoy seguro de qué es lo que actualmente limita la velocidad (¿rendimiento intrínseco de la máquina, o si no?) Es una tarea que repito muchas veces al día, por lo general, y el formato del archivo es siempre el mismo, 1000 columnas, alrededor de 5000 filas.
Aquí hay un archivo de muestra para jugar, si es necesario.
nr <- 5000
nc <- 1000
m <- matrix(round(rnorm(nr*nc),3),nr=nr)
cat(m[1, -1], "\n", file = "test.txt") # first line is shorter
write.table(m[-1, ], file = "test.txt", append=TRUE,
row.names = FALSE, col.names = FALSE)
Actualiza: Lo intentéread.csv.sql
y tambiénload("test.txt", arma::raw_ascii)
usando Armadillo y ambos fueron más lentos que elscan
solución.