Извлечение пар ключ-значение из столбца tibble json и разнесение их в разные строки - PullRequest
1 голос
/ 01 октября 2019

У меня есть столбец с JSON-столбцом, который выглядит следующим образом:

df <- tibble(
  id = c(1, 2), 
  json_col = c('{"a": [1,2,3], "b": [4, 5, 6]}', '{"f": [100,2,8]}')
)

Я хотел бы получить столбец большого формата, который выглядит следующим образом:

id | key | val
----------------
1 | "a" | c(1,2,3)
1 | "b" | c(4,5,6)
2 | "f" | c(100,2,8)

Существует огромное количестворазные ключи JSON в разных строках. Кроме того, идентификаторы могут иметь различное количество ключей json.
Я хотел бы сделать это, используя tidyverse стек.

1 Ответ

1 голос
/ 01 октября 2019

Возможны следующие варианты: dplyr, tidyr, purrr и jsonlite:

df %>%
 mutate(json_col = map(json_col, ~ fromJSON(.) %>% as.data.frame())) %>%
 unnest(json_col) %>%
 pivot_longer(-id, values_drop_na = TRUE) %>%
 group_by(id, name) %>%
 summarise(value = list(value)) 

    id name  value    
  <dbl> <chr> <list>   
1     1 a     <int [3]>
2     1 b     <int [3]>
3     2 f     <int [3]>

Значения сохраняются в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...