1. 학습
  2. /
  3. 강의
  4. /
  5. purrr로 배우는 중급 함수형 프로그래밍

Connected

연습 문제

데이터셋 나누기

이전 연습 문제에서 트윗 한 개당 리트윗 수의 평균이 3.3이라는 것을 확인했어요. 이번에는 이 평균을 넘는 트윗이 몇 개인지, 평균보다 적은 트윗이 몇 개인지 살펴보겠습니다.

이를 위해 먼저 .x가 3.3보다 큰지 검사하는 매퍼를 만들 거예요. 그런 다음 map_at()을 미리 채워 둘 텐데, .at은 "retweet_count", .f는 먼저 우리가 만든 매퍼, 두 번째는 그 매퍼의 부정이 되도록 하겠습니다.

이 강의가 만들어진 이후 purrr의 동작이 변경되어, partial()의 .f와 map_at()의 .f 사이에 인자 충돌이 생기지 않도록 준인용 등호 연산자 :=(일명 "walrus operator")를 사용해야 합니다. 이 연습 문제에서는 :=가 =처럼 동작하지만, 해당 인자가 partial() 내부에 남지 않고 map_at()으로 전달되어야 함을 partial()에 알려 준다고만 이해하시면 됩니다.

이 도구들을 만든 뒤에는 rstudioconf 데이터셋에서 "original tweets"만 추출한 non_rt 객체에 적용하겠습니다.

purrr는 이미 불러와져 있어요.

지침

100 XP
  • .x가 3.3보다 큰지 검사하는 매퍼 mean_above를 만드세요.

  • map_at()을 두 가지 버전으로 미리 채우세요: 하나는 "retweet_count"와 mean_above, 다른 하나는 "retweet_count"와 mean_above의 부정을 사용합니다.

  • 이 두 개의 미리 채운 함수를 non_rt에 매핑하고, "retweet_count" 요소만 유지하세요.

  • 두 결과의 크기를 구하세요.