1. 학습
  2. /
  3. 강의
  4. /
  5. R의 병렬 프로그래밍

Connected

연습 문제

foreach로 반복문 돌리기

미국 보건부는 출산 중 바람직하지 않은 결과가 증가했다는 보고를 받았습니다. 이 추세가 산모 연령이 너무 낮거나 높은 데에서 비롯된 것인지 확인하고자 합니다. 팀에서는 직전 연도의 출생 데이터셋을 확보했습니다. ls_age라는 리스트가 있으며, 이 리스트의 각 원소는 미국 각 주에서 기록된 모든 출생 사례의 산모 나이 벡터입니다.

다음 반복문은 산모 나이가 20세 미만이거나 35세 초과인 출생의 비율을 주별로 계산합니다:

at_risk_perc <- rep(NA, length(ls_age))

for (m in 1:length(ls_age)) {
  at_risk_perc[m] <- 
    sum(ls_age[[m]] > 35 | ls_age[[m]] < 20) * 100/length(ls_age[[m]])
}

하지만 이 코드는 시간이 너무 오래 걸립니다. 다른 방법을 시험해 보려고 합니다. foreach, parallel, doParallel 패키지는 미리 로드되어 있습니다.

지침 1/2

undefined XP
    1
    2
  • foreach() 함수에서 반복할 입력을 지정하세요.
  • 순차 실행에 맞는 연산자를 사용하세요.