ПочатиПочніть безкоштовно

purrr і гістограми

Тепер ви поєднаєте все, що вивчили, починаючи з двох різних списків, які буде перетворено на фасетовану гістограму. Ви знову працюватимете з даними Star Wars із наборів sw_films і sw_people, щоб відповісти на запитання:

  • Який розподіл зросту персонажів у кожному з фільмів Star Wars?

Події різних фільмів відбуваються на різних планетах, тож можна очікувати відмінні розподіли зросту персонажів. Ваше перше завдання — перетворити обидва набори даних на датафрейми, адже ggplot() потребує датафрейм як вхід. Далі ви обʼєднаєте їх і побудуєте результат — гістограму з окремою фасетою, або підграфіком, для кожного фільму.

Ця вправа є частиною курсу

Основи функціонального програмування з purrr

Переглянути курс

Інструкції до вправи

  • Створіть датафрейм із "title" кожного фільму та "characters" з кожного фільму в наборі sw_films.
  • Створіть датафрейм з елементів "height", "mass", "name" і "url" з sw_people.
  • Обʼєднайте два датафрейми, використовуючи ключі "characters" і "url".
  • Створіть гістограму ggplot() з x = height, з фасетуванням за filmtitle.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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(~ ___)
Редагувати та запускати код