Data.table: fread Feld mit falschen Anführungszeichen kann nicht verarbeitet werden, wenn es nicht im Sample ist

Erstellt am 9. Juli 2017  ·  3Kommentare  ·  Quelle: Rdatatable/data.table

Dieses Beispiel:

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)

erzeugt eine irreführende Fehlermeldung:

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

Zumindest stürzt es nicht ab (was ich dachte, dass type[0] von CT_STRING in einen nicht existierenden Typ gestoßen wird) ...

bug fread

Hilfreichster Kommentar

@ ben519 Ihr Dataset enthält nur 1 Zeile, es liegt also definitiv nicht an Unregelmäßigkeiten außerhalb der Stichprobe. Ich habe ein neues Problem für Ihren Fehler erstellt (siehe Link oben)

Alle 3 Kommentare

Mögliche Vorgehensweise:

  • Neue Quotierungsregel QR0 einführen (alle anderen Regeln werden QR1..QR4). Dies wäre der Standard-QR. Gemäß dieser Regel können Felder in Anführungszeichen gesetzt werden oder nicht, jedoch sind 1,foo,"","bar",,"baz,baz" , diese jedoch nicht: "foo""bar","foo\"bar",foo"bar,f"oo,bar" .
  • Wenn beim Lesen einer Datei ein Feld vom Typ STRING ist und unter dem aktuellen QR nicht gelesen werden kann, dann:

    • Wenn wir derzeit bei QR0 sind, stoße den QR, bis das Feld gelesen werden kann, und fahre dann mit dem Scannen der Datei fort.

    • Andernfalls stoßen Sie den QR an, gehen dann aber zurück und scannen alle Zeichenfolgenfelder erneut (da sich die Bedeutung der Anführungszeichen in den bereits gelesenen Daten geändert hat).

  • QR-Bumps haben die folgende Hierarchie: QR0 -> {QR1|QR2|QR3} -> QR4 .

Ich laufe in diesem auch, aber erhalte einen Fehler.

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 Ihr Dataset enthält nur 1 Zeile, es liegt also definitiv nicht an Unregelmäßigkeiten außerhalb der Stichprobe. Ich habe ein neues Problem für Ihren Fehler erstellt (siehe Link oben)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

rafapereirabr picture rafapereirabr  ·  3Kommentare

DavidArenburg picture DavidArenburg  ·  3Kommentare

arunsrinivasan picture arunsrinivasan  ·  3Kommentare

mattdowle picture mattdowle  ·  3Kommentare

lux5 picture lux5  ·  3Kommentare