시작하기무료로 시작하기

purrr와 히스토그램

이제 두 개의 서로 다른 리스트에서 시작해, 지금까지 배운 내용을 모두 모아 패싯 히스토그램을 만들어 보겠습니다. sw_filmssw_people 데이터셋의 Star Wars 데이터를 다시 사용해 다음 질문에 답해 볼 거예요:

  • 각 Star Wars 영화에서 등장인물 키의 분포는 어떨까요?

영화마다 배경이 되는 행성이 다르기 때문에, 등장인물 키의 분포도 다를 수 있다고 예상할 수 있어요. 첫 번째 작업은 ggplot()이 데이터 프레임 입력을 요구하므로 두 데이터셋을 데이터 프레임으로 변환하는 것입니다. 그런 다음 이 두 데이터를 조인하고, 각 영화마다 다른 패싯(서브플롯)으로 나뉜 히스토그램을 그릴 거예요.

이 연습은 강의의 일부입니다

purrr로 배우는 함수형 프로그래밍 기초

강의 보기

연습 안내

  • sw_films 데이터셋에서 각 영화의 "title"과 해당 영화의 "characters"로 데이터 프레임을 만드세요.
  • sw_people에서 "height", "mass", "name", "url" 요소로 데이터 프레임을 만드세요.
  • 두 데이터 프레임을 "characters"와 "url" 키로 조인하세요.
  • x = heightggplot() 히스토그램을 만들고, 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(~ ___)
코드 편집 및 실행