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(~ ___)