tutorial studio sheet read paquete data create cheat r data.table fread

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

  1. Abre la problemática .csv

  2. Ctrl + A (Seleccionar todo)

  3. Abrir nueva hoja de Excel

  4. Haga clic derecho y elija ''Pegar como valores''

  5. Guarde y use este archivo en lugar del original.

Trabajó para mí, y no lleva mucho tiempo.