시작하기무료로 시작하기

상관관계 디버깅

여러분은 미 보건부에서 근무하고 있어요. 팀은 다태임신(쌍둥이, 세쌍둥이 등)이 임신 중 체중 증가와 상관이 있는지 조사하고 있습니다. 상관계수를 계산했지만, 값이 다른 분석가의 추정치와 크게 달랐어요. 그 분석가는 여러분의 데이터에 체중 증가가 99파운드를 초과하는 값이 기록되어 있지 않다고 지적했습니다. 여러분은 계산을 다시 수행하기로 했고, 이번에는 체중 증가의 최댓값을 로그로 남기려 합니다.

작업 공간에는 데이터 프레임의 목록 ls_df가 있습니다. ls_df의 각 원소에는 주(state)별 출생 데이터가 들어 있어요. 여러분은 계산을 병렬로 돌리기 위해 foreach 루프를 작성했습니다.

foreachdoParallel은 미리 로드되어 있습니다.

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

R의 병렬 프로그래밍

강의 보기

연습 안내

  • 코어 4개로 클러스터를 생성하세요.
  • 클러스터의 메시지를 기록할 파일 state_log.txt를 지정하세요.
  • 루프 본문에서 데이터 프레임 dfweight_gain_pounds 열 최댓값을 로그로 남기세요.
  • state_log.txt를 읽어 출력된 메시지를 확인하세요.

실습형 인터랙티브 연습

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

# Create a cluster of four cores
cl <- ___(___,
# Specify a file to log print statements                    
          ___ = "___")
registerDoParallel(cl)
res <- foreach(df = ls_df) %dopar% {
   print(paste(unique(df$state), ":",
# Calculate maximum of weight_gain_pounds in df
               ___(___)))
                 
  cor(df$plurality, df$weight_gain_pounds)
}
stopCluster(cl)
# Read log file to check print messages
read.delim("___", sep = ";")
코드 편집 및 실행