LoslegenKostenlos starten

purrr und Histogramme

Jetzt setzt du alles zusammen, was du gelernt hast: Du startest mit zwei unterschiedlichen Listen, die in ein facettiertes Histogramm umgewandelt werden. Du arbeitest wieder mit den Star-Wars-Daten aus den Datensätzen sw_films und sw_people, um eine Frage zu beantworten:

  • Wie ist die Verteilung der Körpergrößen der Figuren in den einzelnen Star-Wars-Filmen?

Die Filme spielen auf unterschiedlichen Planeten, daher kannst du unterschiedliche Größenverteilungen bei den Figuren erwarten. Deine erste Aufgabe ist, die beiden Datensätze in Data Frames umzuwandeln, da ggplot() ein Data Frame als Eingabe benötigt. Danach verbindest du sie und erstellst daraus ein Histogramm mit unterschiedlichen Facetten bzw. Teilplots für jeden Film.

Diese Übung ist Teil des Kurses

<Kurs>Grundlagen der funktionalen Programmierung mit purrr</Kurs>
Kurs ansehen

Übungsanweisungen

  • Erstelle ein Data Frame mit dem "title" jedes Films und den "characters" jedes Films aus dem Datensatz sw_films.
  • Erstelle ein Data Frame mit den Elementen "height", "mass", "name" und "url" aus sw_people.
  • Führe die beiden Data Frames über die Schlüssel "characters" und "url" zusammen.
  • Erstelle ein ggplot()-Histogramm mit x = height, facettiert nach filmtitle.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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(~ ___)
Code bearbeiten und ausführen