Putting on the radar here at @hadley's suggestion.
What about a function promote() that can create a simplified variable from info extracted from a list column?
Example:
library(tidyverse)
x <- tibble(
character = c("Toothless", "Dory"),
metadata = list(
list(species = "dragon", color = "black",
films = c("How to Train Your Dragon", "How to Train Your Dragon 2")),
list(species = "clownfish", color = "blue",
films = c("Finding Nemo", "Finding Dory"))
)
)
## hypothetical call to promote()
## x %>% promote(metadata, species)
## indicative result
x %>%
mutate(species = simplify(map(metadata, "species"))) %>%
select(character, species, everything())
#> # A tibble: 2 x 3
#> character species metadata
#> <chr> <chr> <list>
#> 1 Toothless dragon <list [3]>
#> 2 Dory clownfish <list [3]>
What friction would promote() remove? The auto-simplification and "putting the new variable in front of the old instead of at the end where I can never see it".
Related to tidyverse/purrr#336. The new capability of purrr::pluck() also seems interesting in this context.
In my real life, both issues are motivated by dealing with tibblized JSON from an API, where I have one row per item and I'm dragging around a list-column of metadata.
Putting on the radar here at @hadley's suggestion.
What about a function
promote()that can create a simplified variable from info extracted from a list column?Example:
What friction would
promote()remove? The auto-simplification and "putting the new variable in front of the old instead of at the end where I can never see it".Related to tidyverse/purrr#336. The new capability of
purrr::pluck()also seems interesting in this context.In my real life, both issues are motivated by dealing with tibblized JSON from an API, where I have one row per item and I'm dragging around a list-column of metadata.