Помилка під час 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)