Обложка канала

R4marketing | канал Алексея Селезнёва | Язык R

Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.

R4marketing | канал Алексея Селезнёва | Язык R

4 года назад
Открыть в
Как быстро привести 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