Betrachten Sie die folgende kommagetrennte Datei. Der Einfachheit halber soll es eine Zeile enthalten:
%Vor%Wenn Sie versuchen, es mit dem Befehl
zu lesen %Vor%Die Zeile wird in 4 Teile getrennt, da die Zeile 3 Kommas enthält. Eigentlich möchte ich nur 3 Teile lesen, von denen eines Komma enthält. Dort kommt Zitat Flagge um Hilfe. Ich habe es versucht:
%Vor% aber das fällt mit Fehler "incomplete final line found by readTableHeader on table"
. Das passiert wegen der ungeraden (sieben) Anzahl von Anführungszeichen.
read.table()
sowie scan()
haben den Parameter allowEscapes
, aber die Einstellung auf TRUE
hilft nicht. Es ist in Ordnung, denn von help(scan)
kannst du lesen:
Die Fluchten, die interpretiert werden, sind die Steuerzeichen '\ A, \ b, \ f, \ n, \ r, \ t, \ v', ... ... Jeder andere ist entkommen Das Zeichen wird wie es selbst behandelt, einschließlich Backslash
Bitte schlagen Sie vor, wie Sie solche in Anführungszeichen gesetzten csv-Dateien mit entdeckten \'
-Angaben lesen würden.
Eine Möglichkeit besteht darin, readLines()
zu verwenden, um alles einzulesen, wie es ist, und dann das Zitatzeichen durch etwas anderes zu ersetzen, zB:
Damit können Sie den Vektor tt mit textConnection
Nicht die schönste Lösung, aber es funktioniert (vorausgesetzt, Sie haben kein "Zeichen irgendwo in der Datei natürlich ...")