Ich versuche, eine große Datei mit dem folgende Stück Code zu lesen:Wie Schelm Datenzeilen zu verwalten, während feste Breite-Dateien in R mit laf_open_fwf Lesen
laf <- laf_open_fwf(paste(input$dir,"/",filename,sep=""), column_widths = col_width,
column_types=rep("character",length(col_width)),
column_names = column_names)
Die Leistung ist gut, aber mein Problem ist, dass, Nehmen wir an, die Datei hat ungefähr 100.000 Datenzeilen, die alle der Definition der festen Breite entsprechen; aber in einigen Fällen kann es ein paar Datenzeilen geben, die "scheußlich" sind, da sie nicht den festen Breiten jeder Spalte entsprechen - Daten in einigen Spalten oder wir sagen, eine Spalte könnte länger oder kürzer sein, und wenn das passiert, Der Ausgang dieses Lesers ist vollständig unterbrochen.
Was ich dachte ist, dass jede Datenzeile, die nach der ersten Rogue-Zeile analysiert wird, die der Parser findet, nicht korrekt analysiert wird. Dies geschieht vor allem, wenn die letzte Spalte der Rogue-Datenzeile übermäßige Daten (ist länger als die definierte Breite für sie)
Also alle Ideen, wie Sie dies umgehen würde sehr geschätzt werden.
Möglicherweise müssen Sie 'readLines()' verwenden und die Daten selbst analysieren. – Gopala
Ja Sie haben Recht - ich folgte dieser Logik und ich habe jetzt die rowNumbers aller Rogue-Datensätze und die richtigen Datensätze - aber laf_open_fwf scheint durch Öffnen der Verbindung zu einer Datei funktionieren - so muss ich eine Datei mit nur den richtigen Daten haben . Oder gibt es eine Möglichkeit, mit der ich den Parser angeben kann, nur ausgewählte Datenzeilen zu lesen? – Sandeep
Nicht, dass ich sehen kann. Am einfachsten, wenn Sie ein Unix-Dienstprogramm verwenden können, um diese Zeilen zu markieren und loszuwerden. – Gopala