Data.table: fread No se puede manejar el campo mal cotizado si está fuera de muestra

Creado en 9 jul. 2017  ·  3Comentarios  ·  Fuente: Rdatatable/data.table

Este ejemplo:

require(data.table)
DT = data.table(A=rep("abc", 10000), B="def")
DT[110, A:='"a"b']
fwrite(DT, f<-tempfile(), quote=F)
fread(f)

produce un mensaje de error engañoso:

Expecting 2 cols but row 0 contains only 1 cols (sep=','). Consider fill=true. <<"a"b,def>>

Al menos no se bloquea (lo que pensé que sucedería dado que type[0] sube de CT_STRING a un tipo inexistente) ...

bug fread

Comentario más útil

@ ben519 Su conjunto de datos contiene solo 1 fila, por lo que definitivamente no se debe a irregularidades fuera de la muestra. Creé un nuevo problema para su error (vea el enlace de arriba)

Todos 3 comentarios

Posible enfoque:

  • Introduzca una nueva regla de cotización QR0 (todas las demás reglas pasan a ser QR1..QR4). Este sería el QR predeterminado. Según esta regla, los campos pueden o no cotizar, pero no se permiten cotizaciones internas . Por lo tanto, los siguientes campos son admisibles en QR0: 1,foo,"","bar",,"baz,baz" , mientras que estos no lo son: "foo""bar","foo\"bar",foo"bar,f"oo,bar" .
  • Al leer un archivo, si algún campo es de tipo STRING y no se puede leer con el QR actual, entonces:

    • Si actualmente estamos en QR0, presione el QR hasta que se pueda leer el campo, luego continúe escaneando el archivo;

    • De lo contrario, golpee el QR pero luego retroceda y vuelva a escanear todos los campos de cadena (ya que el significado de las comillas ha cambiado en los datos que ya se leyeron).

  • Los topes QR tienen la siguiente jerarquía: QR0 -> {QR1|QR2|QR3} -> QR4 .

También me encuentro con esto, pero obtengo un error.

screen shot 2017-11-03 at 1 59 52 pm

fread("foo.csv", select=c("Date", "Description", "Amount"), header = T)  # error
fread("foo.csv", header = T, verbose = F)  # works

screen shot 2017-11-03 at 1 59 03 pm

@ ben519 Su conjunto de datos contiene solo 1 fila, por lo que definitivamente no se debe a irregularidades fuera de la muestra. Creé un nuevo problema para su error (vea el enlace de arriba)

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

arunsrinivasan picture arunsrinivasan  ·  3Comentarios

MichaelChirico picture MichaelChirico  ·  3Comentarios

nachti picture nachti  ·  3Comentarios

jameslamb picture jameslamb  ·  3Comentarios

jangorecki picture jangorecki  ·  3Comentarios