purrr e istogrammi
Ora metterai insieme tutto ciò che hai imparato, partendo da due liste diverse, che trasformerai in un istogramma con sfaccettature. Lavorerai di nuovo con i dati di Star Wars dai dataset sw_films e sw_people per rispondere a una domanda:
- Qual è la distribuzione delle altezze dei personaggi in ciascun film di Star Wars?
I vari film si svolgono su pianeti diversi, quindi potresti aspettarti distribuzioni di altezza differenti tra i personaggi. Il tuo primo compito è trasformare i due dataset in data frame, dato che ggplot() richiede un data frame in input. Poi li unirai e traccerai il risultato: un istogramma con una diversa faccia, o sottografico, per ogni film.
Questo esercizio fa parte del corso
Le basi della programmazione funzionale con purrr
Istruzioni dell'esercizio
- Crea un data frame con il
"title"di ciascun film e i"characters"di ogni film dal datasetsw_films. - Crea un data frame con gli elementi
"height","mass","name"e"url"dasw_people. - Unisci i due data frame usando le chiavi
"characters" e"url". - Crea un istogramma
ggplot()conx = height, con facet perfilmtitle.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Turn data into correct data frame format
film_by_character <- tibble(filmtitle = map____(___, ___)) %>%
mutate(filmtitle, characters = map(___, ___)) %>%
unnest(cols = c(characters))
# Pull out elements from sw_people
sw_characters <- map____(___, `[`, c(___, ___, ___, ___))
# Join the two new objects
character_data <- inner_join(___, ___, by = c(___ = ___)) %>%
# Make sure the columns are numbers
mutate(height = as.numeric(height), mass = as.numeric(mass))
# Plot the heights, faceted by film title
ggplot(character_data, aes(x = ___)) +
geom_histogram(stat = "count") +
facet_wrap(~ ___)