purrr i histogramy
Czas połączyć wszystko, czego się nauczysz, zaczynając od dwóch różnych list, które zostaną przekształcone w histogram z podziałem na panele. Ponownie skorzystasz z danych ze Świata Gwiezdnych Wojen – ze zbiorów sw_films i sw_people – aby odpowiedzieć na pytanie:
- Jak rozkłada się wzrost postaci w poszczególnych filmach z serii Gwiezdne Wojny?
Różne filmy rozgrywają się na różnych planetach, więc można się spodziewać różnych rozkładów wzrostu bohaterów. Twoim pierwszym zadaniem jest przekształcenie obu zbiorów danych w ramki danych, ponieważ ggplot() wymaga ramki danych jako danych wejściowych. Następnie połączysz je ze sobą i zwizualizujesz wynik w postaci histogramu z osobnym panelem dla każdego filmu.
To ćwiczenie jest częścią kursu
Podstawy programowania funkcyjnego z purrr
Instrukcje do ćwiczenia
- Utwórz ramkę danych zawierającą element
"title"każdego filmu oraz element"characters"ze zbiorusw_films. - Utwórz ramkę danych zawierającą elementy
"height","mass","name"i"url"ze zbiorusw_people. - Połącz obie ramki danych, używając kluczy
"characters"i"url". - Utwórz histogram za pomocą
ggplot()zx = height, podzielony na panele wedługfilmtitle.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(~ ___)