Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz ramkę danych zawierającą element "title" każdego filmu oraz element "characters" ze zbioru sw_films.
  • Utwórz ramkę danych zawierającą elementy "height", "mass", "name" i "url" ze zbioru sw_people.
  • Połącz obie ramki danych, używając kluczy "characters" i "url".
  • Utwórz histogram za pomocą ggplot() z x = height, podzielony na panele według filmtitle.

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(~ ___)
Edytuj i uruchom kod