Diese Frage zu einem generischen Mechanismus, jede Sammlung von nicht-zyklischen homogenen oder heterogenen Datenstrukturen in einen Datenrahmen für die Umwandlung. Dies kann besonders nützlich sein, wenn Sie mit der Aufnahme vieler JSON-Dokumente oder mit einem großen JSON-Dokument arbeiten, bei dem es sich um ein Array von Wörterbüchern handelt.R: Allgemein Abplattung JSON data.frame
Es gibt mehrere SO-Fragen, die sich mit der Manipulation tief verschachtelter JSON-Strukturen befassen und diese in Datenrahmen mit Funktionen wie plyr
, lapply
usw. umwandeln. Alle Fragen und Antworten, die ich gefunden habe, beziehen sich auf bestimmte Fälle und nicht auf einen allgemeinen Ansatz für den Umgang mit Sammlungen komplexer JSON-Datenstrukturen. In Python und Ruby wurde ich gut bedient, indem ich ein generisches Dienstprogramm zur Verflachung von Datenstrukturen implementierte, das den Pfad zu einem Blattknoten in einer Datenstruktur als den Namen des Wertes an diesem Knoten in der abgeflachten Datenstruktur verwendet. Zum Beispiel würde der Wert my_data[['x']][[2]][['y']]
als result[['x.2.y']]
erscheinen.
Wenn eine Sammlung dieser Datenstrukturen nicht vollständig homogen ist, wäre der Schlüssel für eine erfolgreiche Verflachung eines Datenrahmens die Ermittlung der Namen aller möglichen Datenrahmenspalten, z. B. durch die Vereinigung aller Schlüssel/Namen der Werte in den einzelnen abgeflachten Datenstrukturen.
Das scheint ein allgemeines Muster zu sein und so frage ich mich, ob jemand das schon für R gebaut hat. Wenn nicht, werde ich es bauen, aber angesichts Rs einzigartigen vielversprechenden Datenstrukturen würde ich mich über Ratschläge freuen ein Implementierungsansatz, der Heap Thrashing minimiert.
Huh? Zu viel Englisch für mich (jedenfalls) zu verstehen. Schlagen Sie vor, einige reproduzierbare Eingaben mit (vermutlich) langsamem Code zu versehen, der die gewünschte Ausgabe erzeugt, und gehen Sie von dort aus weiter. Vielleicht weiß ich JSON einfach nicht. Kannst du etwas verpastbares in eine neue R-Sitzung stellen, die einige JSON-Daten von irgendwo herunterlädt, um deine Frage zu demonstrieren? [Wie man ein gutes reproduzierbares Beispiel macht] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) –