To pytanie dotyczy ogólnego mechanizmu przekształcania dowolnego zbioru niecyklicznych jednorodnych lub heterogenicznych struktur danych w ramkę danych. Może to być szczególnie przydatne w przypadku przetwarzania wielu dokumentów JSON lub dużego dokumentu JSON, który jest zestawem słowników.R: Ogólne spłaszczanie JSON do data.frame
Istnieje kilka SO pytania, które zajmują się manipulacji głęboko zagnieżdżone struktury JSON i zamieniając je w dataframes użyciu funkcji takich jak plyr
, lapply
itp Wszystkie pytania i odpowiedzi znalazłem są o konkretnych przypadkach, w przeciwieństwie do oferowania ogólny podejście do radzenia sobie z kolekcjami złożonych struktur danych JSON.
W języku Python i Ruby zostałem dobrze obsłużony przez implementację ogólnego narzędzia do spłaszczania danych, które wykorzystuje ścieżkę do węzła liścia w strukturze danych jako nazwę wartości w tym węźle w spłaszczonej strukturze danych. Na przykład wartość my_data[['x']][[2]][['y']]
pojawi się jako result[['x.2.y']]
.
Jeśli ma się kolekcję tych struktur danych, które mogą nie być całkowicie jednorodne, kluczem do skutecznego spłaszczenia ramki danych będzie wykrycie nazw wszystkich możliwych kolumn ramek danych, np. Poprzez połączenie wszystkich kluczy/nazwy wartości w indywidualnie spłaszczonych strukturach danych.
Wydaje się, że to powszechny wzorzec, więc zastanawiam się, czy ktoś już zbudował to dla R. Jeśli nie, zbuduję to, ale biorąc pod uwagę wyjątkowe struktury danych oparte na obietnicach R, będę wdzięczny za porady podejście implementacyjne, które minimalizuje efekt sterty.
Huh? Za dużo angielskiego dla mnie (w każdym razie) do zrozumienia. Zasugeruj dostarczenie niektórych powtarzalnych danych wejściowych za pomocą jakiegoś (prawdopodobnie) wolnego kodu, który generuje dane wyjściowe, i od tego miejsca. Może po prostu nie znam JSON. Czy możesz podać coś możliwego do wklejenia w nową sesję R, która pobiera gdzieś dane JSON, aby zademonstrować swoje pytanie? [Jak zrobić świetny powtarzalny przykład] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) –