purrr en histogrammen
Nu ga je alles wat je geleerd hebt samenbrengen, beginnend met twee verschillende lijsten die je omzet naar een gefacetteerd histogram. Je werkt opnieuw met de Star Wars-gegevens uit de sw_films- en sw_people-gegevenssets om een vraag te beantwoorden:
- Wat is de verdeling van de lengtes van personages in elk van de Star Wars-films?
Verschillende films spelen zich af op verschillende planeten, dus je kunt verwachten dat de verdelingen van lengtes per film variëren. Je eerste taak is om de twee gegevenssets om te zetten in data frames, omdat ggplot() een data frame als input vereist. Vervolgens voeg je ze samen en maak je de plot: een histogram met een aparte facet, of subplot, voor elke film.
Deze oefening maakt deel uit van de cursus
Basis van functioneel programmeren met purrr
Oefeninstructies
- Maak een data frame met de
"title"van elke film en de"characters"uit elke film in desw_films-gegevensset. - Maak een data frame met de elementen
"height","mass","name"en"url"uitsw_people. - Voeg de twee data frames samen met de sleutels
"characters" en"url". - Maak een
ggplot()-histogram metx = height, gefacet perfilmtitle.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(~ ___)