시작하기무료로 시작하기

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 패키지는 미리 로드되어 있습니다.

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

R의 병렬 프로그래밍

강의 보기

실습형 인터랙티브 연습

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

# Specify input to loop over 
at_risk_perc <- foreach(m = ___
                        # Specify the sequential operator
                       ) ___ {
  sum(m > 35 | m < 20) * 100/length(m)}
코드 편집 및 실행