시작하기무료로 시작하기

부트스트랩 에러

임상 연구소에서 R 프로그래머로 일하고 있어요. 연구소의 통계학자가 서로 다른 생쥐 종의 평균 체중 범위를 산출하기 위한 대규모 분석을 진행 중입니다. 통계학자는 futures 백엔드를 사용해 weight_list의 각 원소에 병렬로 적용되는 bootstrap() 함수를 작성했어요. 하지만 코드가 다음과 같은 에러를 발생시킵니다:

Error in checkForRemoteErrors(val) : 
  one node produced an error: missing values and NaN's not allowed if 'na.rm' is FALSE

그녀는 어떤 weight_list의 원소가 에러를 일으키는지 찾지 못하고, 시간 소모가 큰 계산의 모든 결과도 잃고 있어요. 여러분이 코드를 고쳐 달라는 요청을 받았습니다. furrr 패키지는 이미 로드되어 있고, futures는 multisession으로 계획되어 있어요.

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

R의 병렬 프로그래밍

강의 보기

연습 안내

  • 중괄호 안의 코드에 에러를 잡을 수 있는 함수를 제공하세요.
  • error 인수에는 하나의 인수 e를 받아 문자열 "Error here!"를 반환하는 함수를 넣으세요.
  • furrr 함수를 사용해 bootstrap()weight_list의 모든 원소에 매핑하세요.

실습형 인터랙티브 연습

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

bootstrap <- function (x) {
  # Supply code to a function for catching errors
       ___({est <- rep(0, 1e3)
            for (i in 1:1e3) {
              b <- sample(x, replace = T)
              est[i] <- mean(b)
              }
    return(quantile(est, c(0.25, 0.75)))
     # Supply a function that returns a string
  }, error = ___
 )
}
# Map bootstrap() to every element of weight_list
___(___, ___)
plan(sequential)
코드 편집 및 실행