CommencezCommencez gratuitement

purrr et les histogrammes

Vous allez maintenant réunir tout ce que vous avez appris, en partant de deux listes différentes, qui seront transformées en histogramme à facettes. Vous allez retravailler avec les données de Star Wars tirées des jeux de données sw_films et sw_people pour répondre à une question :

  • Quelle est la distribution des tailles des personnages dans chacun des films Star Wars ?

Chaque film se déroule sur un ensemble de planètes différent, donc on peut s'attendre à voir des distributions de tailles distinctes selon les personnages. Votre première tâche consiste à transformer les deux jeux de données en tableaux de données, puisque ggplot() exige une entrée de type data frame. Ensuite, vous les combinerez par jointure, puis vous tracerez le résultat : un histogramme avec une facette (ou sous-graphe) différente pour chaque film.

Cette activité fait partie du cours

Fondements de la programmation fonctionnelle avec purrr

Voir le cours

Instructions de l’exercice

  • Créez un tableau de données avec le "title" de chaque film et les "characters" de chaque film dans le jeu de données sw_films.
  • Créez un tableau de données avec les éléments "height", "mass", "name" et "url" de sw_people.
  • Joignez les deux tableaux de données en utilisant les clés "characters" et "url".
  • Créez un histogramme ggplot() avec x = height, facetté par filmtitle.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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(~ ___)
Modifier et exécuter le code