2016-04-27 7 views
3

Ich habe einen latin1 mit verschachtelten Anführungszeichen csv-Datei kodiert:`fread` mit Header mit Sonderzeichen (latin1) und ungewöhnlichen verschachtelten Zitaten

Ort;Stra▒e;Bezeichnung 
Vienna;Testgasse 1;"Ministerium ""Pestalozzi""" 
Graz;Teststra▒e 3;HS 
Salzburg;Beispielstra▒e 9;"NMS ""Die Schlauen""" 
Vienna;Wolfgang-Stra▒e 7;"Wirtshaus ""Wien III""" 

Mit fread von data.table 1.9.6 gibt einen falschen Sonder Zeichen (ß) in der Kopfzeile, während alle ß unten korrekt sind - die zitierten Anführungszeichen bleiben "".

dat <- fread("latin1quotedat.csv", encoding = "Latin-1") 
dat # wrong header, wrong quotes 
     Ort   Stra\xdfe    Bezeichnung 
1: Vienna  Testgasse 1 Ministerium ""Pestalozzi"" 
2:  Graz  Teststraße 3       HS 
3: Salzburg Beispielstraße 9  NMS ""Die Schlauen"" 
4: Vienna Wolfgang-Straße 7  Wirtshaus ""Wien III"" 

Mit read.csv2 von aller Basis R wie erwartet:

dat1 <- read.csv2("latin1quotedat.csv", encoding = "latin1") 
dat1 # ok 
     Ort   Straße    Bezeichnung 
1 Vienna  Testgasse 1 Ministerium "Pestalozzi" 
2  Graz  Teststraße 3      HS 
3 Salzburg Beispielstraße 9  NMS "Die Schlauen" 
4 Vienna Wolfgang-Straße 7  Wirtshaus "Wien III" 

Vielleicht eine Option für die Anführungszeichen gibt es (obwohl ich nicht fündig wird). Das falsch interpretierte Sonderzeichen in der Kopfzeile sieht wie ein Fehler aus.

Der Code und ein Beispiel csv finden Sie hier: https://github.com/nachti/datatable_test. Klonen Sie das Repository und führen Sie latin1quotedat.R.

Gerhard

+2

War ein Versehen meinerseits .. ausgelassen den Header, während das Feature zu implementieren. Könnten Sie das bitte auf der Projektseite ablegen? Vielen Dank. – Arun

+1

Danke Arun - Fertig. – nachti

Antwort

4

Jetzt mit commit f91bba1 in current devel, v1.9.7 fixiert. Von NEWS:

fread() respektieren nicht Codierung auf Kopfspalte. Jetzt behoben, #1680. Danke @nachti.

Damit erhalte ich:

names(fread("~/Downloads/latin1quotedat.csv", encoding = "Latin-1")) 
# [1] "Ort"   "Straße"  "Bezeichnung" 
+0

Danke für die schnelle Antwort Arun! Haben Sie auch eine Lösung für die Angebote? – nachti

+1

Lösung ist einfach, aber am wahrscheinlichsten in der nächsten Version, nicht sicher. – Arun