Motivating example: Game of Thrones
chars <- tibble(json = got_chars)
chars
## # A tibble: 30 × 1
## json
## <list>
## 1 <named list [18]>
## 2 <named list [18]>
## 3 <named list [18]>
## 4 <named list [18]>
## 5 <named list [18]>
## 6 <named list [18]>
## 7 <named list [18]>
## 8 <named list [18]>
## 9 <named list [18]>
## 10 <named list [18]>
## # ℹ 20 more rows
chars |>
unnest_wider(json)
## # A tibble: 30 × 18
## url id name gender culture born died alive titles aliases father
## <chr> <int> <chr> <chr> <chr> <chr> <chr> <lgl> <list> <list> <chr>
## 1 https://w… 1022 Theo… Male "Ironb… "In … "" TRUE <chr> <chr> ""
## 2 https://w… 1052 Tyri… Male "" "In … "" TRUE <chr> <chr> ""
## 3 https://w… 1074 Vict… Male "Ironb… "In … "" TRUE <chr> <chr> ""
## 4 https://w… 1109 Will Male "" "" "In … FALSE <chr> <chr> ""
## 5 https://w… 1166 Areo… Male "Norvo… "In … "" TRUE <chr> <chr> ""
## 6 https://w… 1267 Chett Male "" "At … "In … FALSE <chr> <chr> ""
## 7 https://w… 1295 Cres… Male "" "In … "In … FALSE <chr> <chr> ""
## 8 https://w… 130 Aria… Female "Dorni… "In … "" TRUE <chr> <chr> ""
## 9 https://w… 1303 Daen… Female "Valyr… "In … "" TRUE <chr> <chr> ""
## 10 https://w… 1319 Davo… Male "Weste… "In … "" TRUE <chr> <chr> ""
## # ℹ 20 more rows
## # ℹ 7 more variables: mother <chr>, spouse <chr>, allegiances <list>,
## # books <list>, povBooks <list>, tvSeries <list>, playedBy <list>
chars |>
unnest_wider(json) |>
select(id, where(is.list))
## # A tibble: 30 × 8
## id titles aliases allegiances books povBooks tvSeries playedBy
## <int> <list> <list> <list> <list> <list> <list> <list>
## 1 1022 <chr [2]> <chr [4]> <chr [1]> <chr [3]> <chr [2]> <chr [6]> <chr>
## 2 1052 <chr [2]> <chr [11]> <chr [1]> <chr [2]> <chr [4]> <chr [6]> <chr>
## 3 1074 <chr [2]> <chr [1]> <chr [1]> <chr [3]> <chr [2]> <chr [1]> <chr>
## 4 1109 <chr [1]> <chr [1]> <NULL> <chr [1]> <chr [1]> <chr [1]> <chr>
## 5 1166 <chr [1]> <chr [1]> <chr [1]> <chr [3]> <chr [2]> <chr [2]> <chr>
## 6 1267 <chr [1]> <chr [1]> <NULL> <chr [2]> <chr [1]> <chr [1]> <chr>
## 7 1295 <chr [1]> <chr [1]> <NULL> <chr [2]> <chr [1]> <chr [1]> <chr>
## 8 130 <chr [1]> <chr [1]> <chr [1]> <chr [4]> <chr [1]> <chr [1]> <chr>
## 9 1303 <chr [5]> <chr [11]> <chr [1]> <chr [1]> <chr [4]> <chr [6]> <chr>
## 10 1319 <chr [4]> <chr [5]> <chr [2]> <chr [1]> <chr [3]> <chr [5]> <chr>
## # ℹ 20 more rows