Nie wiem, jak poprawnie przekonwertować moje dane JSON na użyteczną ramkę danych. To przykładowe dane, które przedstawia strukturę moich danych:Jak przekonwertować złożone dane JSON w pojedynczą ramkę danych?
{
"data":[
{"track":[
{"time":"2015","midpoint":{"x":6,"y":8},"realworld":{"x":1,"y":3},"coordinate":{"x":16,"y":38}},
{"time":"2015","midpoint":{"x":6,"y":8},"realworld":{"x":1,"y":3},"coordinate":{"x":16,"y":37}},
{"time":"2016","midpoint":{"x":6,"y":9},"realworld":{"x":2,"y":3},"coordinate":{"x":16,"y":38}}
]},
{"track":[
{"time":"2015","midpoint":{"x":5,"y":9},"realworld":{"x":-1,"y":3},"coordinate":{"x":16,"y":38}},
{"time":"2015","midpoint":{"x":5,"y":9},"realworld":{"x":-1,"y":3},"coordinate":{"x":16,"y":38}},
{"time":"2016","midpoint":{"x":5,"y":9},"realworld":{"x":-1,"y":3},"coordinate":{"x":16,"y":38}},
{"time":"2015","midpoint":{"x":3,"y":15},"realworld":{"x":-9,"y":2},"coordinate":{"x":17,"y":38}}
]},
{"track":[
{"time":"2015","midpoint":{"x":6,"y":7},"realworld":{"x":-2,"y":3},"coordinate":{"x":16,"y":39}}
]}]}
Mam wiele ścieżek i chciałbym zestaw danych powinien wyglądać tak:
track time midpoint realworld coordinate
1
1
1
2
2
2
2
3
tej pory mam to :
json_file <- "testdata.json"
data <- fromJSON(json_file)
data2 <- list.stack(data, fill=TRUE)
teraz to wychodzi tak:
Jak mogę uzyskać to we właściwym formacie?
IMO to byłby bardzo pouczające pozostawić w swoim iteracji do ostatecznego rozwiązania, ale efekt końcowy jest ++ eleganckie. – hrbrmstr
@hrbrmstr thx :-), ale co masz na myśli mówiąc "zostawić w swoich iteracjach ostateczne rozwiązanie" *? – Jaap
argh, masz rację. źle przeczytałem ostateczną wersję i myślałem, że usunąłeś sapply (było inaczej sformatowane). Teraz próbuję dowiedzieć się, dlaczego 'purrr :: flatten_df()' - które po prostu naprawdę nazywa się 'dplyr :: bind_rows()' - nie zadziała w tym przypadku. Udało mi się również przekodować R za pomocą niektórych połączeń typu "purrr", więc był to dobry post całego PO (trzeba złożyć kilka spraw GH). – hrbrmstr