Как быстро привести JSON структуру к табличному виду в R
Эту тему я уже затрагивал в 10 уроке курса "Язык R для пользователей Excel", но для общих случаев есть более простой метод, чем рассмотренный в уроке.
Пакет tidyjson предоставляет ряд функций - глаголов, наподобие dplyr, которые позволяют легко работать с JSON структурами, в том числе и быстро приводить сложные, вложенные конструкции в табличный вид.
Для приведения JSON в таблицу используйте функцию spread_all().
Пример:
library(tidyjson)
library(dplyr)
# Тестовый набор данных JSON структур
people <- c('{"age": 32, "name": {"first": "Bob", "last": "Smith"}}',
'{"age": 54, "name": {"first": "Susan", "last": "Doe"}}',
'{"age": 18, "name": {"first": "Ann", "last": "Jones"}}')
# Приводим в табличный вид
people %>% spread_all
#> # A tbl_json: 3 x 5 tibble with a "JSON" attribute
#> ..JSON document.id age name.first name.last
#> <chr> <int> <dbl> <chr> <chr>
#> 1 "{\"age\":32,\"name..." 1 32 Bob Smith
#> 2 "{\"age\":54,\"name..." 2 54 Susan Doe
#> 3 "{\"age\":18,\"name..." 3 18 Ann Jones
При чём функция spread_all() принимает на вход вектор JSON структур, т.е.она векторизирована.
#заметки_по_R