IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un data frame con il "title" di ciascun film e i "characters" di ogni film dal dataset sw_films.
  • Crea un data frame con gli elementi "height", "mass", "name" e "url" da sw_people.
  • Unisci i due data frame usando le chiavi "characters" e "url".
  • Crea un istogramma ggplot() con x = height, con facet per filmtitle.

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(~ ___)
Modifica ed esegui il codice