studio - read csv r
Error ''nulo incrustado en cadena'' al importar csv con fread (4)
Tengo un archivo grande (3.5G) que estoy tratando de importar usando data.table::fread
.
Originalmente se creó a partir de un archivo rpt que se abrió como texto y se guardó como un archivo CSV.
Esto ha funcionado bien con archivos más pequeños (del mismo tipo de datos, mismas columnas y todos. Este es solo para un período de tiempo más largo y un alcance más amplio).
Cuando intento correr
mydata <- fread("mycsv.csv")
Me sale el error
Error en fread ("mycsv.csv"): nul incrustado en la cadena: ''y / 0e / 0a / 0r / 0''
¿Qué significa esto?
En este caso, puede usar read.csv
con fileEncoding de UTF-16LE en lugar de fread
.
read.csv("mycsv.csv",fileEncoding="UTF-16LE")
Teniendo en cuenta el tamaño de sus datos, usar read.csv
tomaría un par de minutos, pero creo que no es un gran problema.
Podemos eliminar los terminadores nulos en la línea de comandos usando algo como:
sed ''s///0//g'' mycsv.csv > mycsv.csv
O como lo sugiere @marbel, fread te permite pasar la llamada sed dentro del texto. Como:
fread("sed ''s///0//g'' mycsv.csv")
Puedes probar esta pequeña función:
cleanFiles<-function(file,newfile){
writeLines(iconv(readLines(file,skipNul = TRUE)),newfile)
}
Es un trabajo para mi
Una forma no técnica de resolver esto sería, a
Abre la problemática .csv
Ctrl + A (Seleccionar todo)
Abrir nueva hoja de Excel
Haga clic derecho y elija ''Pegar como valores''
Guarde y use este archivo en lugar del original.
Trabajó para mí, y no lleva mucho tiempo.