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
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éessw_films. - Créez un tableau de données avec les éléments
"height","mass","name"et"url"desw_people. - Joignez les deux tableaux de données en utilisant les clés
"characters" et"url". - Créez un histogramme
ggplot()avecx = height, facetté parfilmtitle.
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(~ ___)