ПочатиПочніть безкоштовно

Помилка під час bootstrap

Ви працюєте R-програмістом у клінічній лабораторії. Статистикиня в лабораторії проводить масштабний аналіз, щоб визначити діапазони для середньої маси різних видів мишей. Вона написала функцію bootstrap(), яку застосовують до кожного елемента weight_list паралельно з використанням backend'а 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)
Редагувати та запускати код