purrr와 히스토그램
이제 두 개의 서로 다른 리스트에서 시작해, 지금까지 배운 내용을 모두 모아 패싯 히스토그램을 만들어 보겠습니다. sw_films와 sw_people 데이터셋의 Star Wars 데이터를 다시 사용해 다음 질문에 답해 볼 거예요:
- 각 Star Wars 영화에서 등장인물 키의 분포는 어떨까요?
영화마다 배경이 되는 행성이 다르기 때문에, 등장인물 키의 분포도 다를 수 있다고 예상할 수 있어요. 첫 번째 작업은 ggplot()이 데이터 프레임 입력을 요구하므로 두 데이터셋을 데이터 프레임으로 변환하는 것입니다. 그런 다음 이 두 데이터를 조인하고, 각 영화마다 다른 패싯(서브플롯)으로 나뉜 히스토그램을 그릴 거예요.
이 연습은 강의의 일부입니다
purrr로 배우는 함수형 프로그래밍 기초
연습 안내
sw_films데이터셋에서 각 영화의"title"과 해당 영화의"characters"로 데이터 프레임을 만드세요.sw_people에서"height","mass","name","url"요소로 데이터 프레임을 만드세요.- 두 데이터 프레임을
"characters"와"url" 키로 조인하세요. x = height로ggplot()히스토그램을 만들고,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(~ ___)