L'erreur du bootstrap
Vous travaillez comme programmeur·e R dans un laboratoire clinique. La statisticienne du labo mène une analyse à grande échelle pour établir des plages de poids moyens pour différentes espèces de souris. Elle a écrit une fonction, bootstrap(), qui est appliquée à chaque élément de weight_list en parallèle à l'aide d'un moteur futures. Cependant, le code génère l'erreur suivante :
Error in checkForRemoteErrors(val) :
one node produced an error: missing values and NaN's not allowed if 'na.rm' is FALSE
Elle n'arrive pas à trouver l'élément de weight_list qui cause l'erreur. Elle perd aussi tous les résultats de ce calcul long à exécuter. On vous a demandé de corriger le code. Le paquet furrr a été chargé pour vous et multisession a été planifié pour les futures.
Cette activité fait partie du cours
Programmation parallèle en R
Instructions de l’exercice
- Dans les accolades, fournissez le code à une fonction qui peut intercepter l'erreur.
- Pour l'argument error, fournissez une fonction qui prend un argument,
e, et qui retourne la chaîne"Error here!". - Appliquez
bootstrap()à tous les éléments deweight_listen utilisant une fonction defurrr.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)