НачатьНачать бесплатно

Ошибка в бутстрэпе

Вы работаете R-программистом в клинической лаборатории. Статистик лаборатории проводит масштабный анализ для определения диапазонов средней массы различных видов мышей. Она написала функцию bootstrap(), которая применяется к каждому элементу weight_list в параллельном режиме с использованием бэкенда futures. Однако код вызывает следующую ошибку:

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!".
  • Примените bootstrap() ко всем элементам weight_list с помощью функции из пакета furrr.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код