시작하기무료로 시작하기

병렬 필터링

당신은 United Nations의 데이터 컨설턴트로 일하고 있으며, 전 세계 예술 전공 학생을 대상으로 설문을 진행하려고 합니다. 그들은 인문·예술 학과가 있는 대학교 데이터셋을 수집했고, 각 국가에서 상위 예술 대학을 선정해 설문 대상으로 삼기로 했습니다.

uni_list는 데이터 프레임의 리스트로, 각 원소가 한 국가의 데이터입니다. 각 데이터 프레임에는 total_score 열이 있습니다. 다음 함수를 사용할 수 있어요:

filter_df <- function (df, select_n_unis) {
  df %>% 
    top_n(select_n_unis, total_score)
}

이 함수는 dplyr이 필요합니다. select_n_unis 인수는 선택할 상위 대학 수를 지정합니다. 각 CSV 파일에서 상위 5개 대학만 병렬로 필터링하라는 요청을 받았습니다. parallel 패키지는 이미 로드되어 있어요.

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

R의 병렬 프로그래밍

강의 보기

연습 안내

  • 클러스터 cl의 각 코어에서 dplyr을 로드하세요.
  • 변수 n_unis를 클러스터 cl로 내보내세요.
  • parLapply()를 사용해 uni_list의 각 원소에 filter_df()를 적용하세요.
  • 선택할 대학 수 n_unisfilter_df()의 올바른 인수에 전달하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

cl <- makeCluster(4)
# Load dplyr in cluster
___

n_unis <- 5
# Export n_unis to cluster
___(___, ___, envir = environment())
# Apply filter_df() to each element of uni_list
ls_df <- parLapply(___, ___, ___,
                   # Supply number of universities to select
                   ___ = ___)
stopCluster(cl)
코드 편집 및 실행