Download eines Datenstapels von einer hasserfüllten lokalen Regierungsseite. Es gibt 77.000 Einträge von Elementen, die in einer einfachen Textdatei genau wie folgt aussehen. Ich muss diesen Dunghaufen als Datenrahmen in R importieren:
%Vor%Es gibt übliche Zeichenvektoren wie "Instrument", "Grantor" und "PrpId". Wie genau würde ich das in R importieren? Würde das ein Parsing oder Scraping irgendeiner Art beinhalten?
Unnötig zu sagen, dass ich versucht habe, diese Datei nach Excel zu importieren, aber nicht funktioniert hat. Ich denke, R würde viel besser funktionieren, muss nur herausfinden, wie. Danke
Ich habe eine sehr generische Parsing-Funktion geschrieben, die mit jedem Muster von Trennlinien und Feld-Wert-Trennzeichen umgehen kann, die als parametrisierte Regexe angegeben sind. Es entfernt optional auch nachfolgende Leerzeichen aus den Feldwerten und übergibt Variadic-Argumente an den einzelnen data.frame()
-Aufruf, der das resultierende data.frame erstellt.
So verwenden Sie es:
%Vor% Sie können auch das Argument select
angeben, um genau auszuwählen, welche Felder Sie extrahieren möchten:
Ich habe mich sehr bemüht, es so robust wie möglich zu machen. Es behandelt sorgfältig mögliche redundante führende und nachfolgende Trennlinien und behandelt den Fall inkonsistenter Felder zwischen Abschnitten richtig.
Es lohnt sich, diesen letzten Punkt zu betonen. Alle anderen angebotenen Lösungen machen äußerst spröde Annahmen über die Eingabedaten, entweder dass es genau 8 Felder pro Abschnitt immer in der gleichen Reihenfolge gibt, oder dass jeder (möglicherweise fest codierte) Feldname in jedem Abschnitt vorkommt. Wenn diese Annahme verletzt wird, werden diese Lösungen nutzlos. Meine Funktion macht keine Annahmen über Feldnummer, Namen oder Konsistenz. Es ruft dynamisch alle Feldnamen ab, die in jedem Abschnitt vorhanden sind, und erstellt geeignete Vektoren von jedem, wobei NA
-Elemente generiert werden, wobei das Feld in einem bestimmten Abschnitt nicht vorhanden ist.
Hier sind einige Beispiele:
%Vor%Anfänger mit R, also bin ich sicher, dass die Leute bessere Wege hinzufügen werden, aber hier ist einer, der so lange funktioniert, wie die Felder jedes Datensatzes in Anzahl und Reihenfolge festgelegt sind;
%Vor%Tags und Links r parsing text-processing text-parsing