CommencezCommencez gratuitement

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

Voir le cours

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 de weight_list en utilisant une fonction de furrr.

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)
Modifier et exécuter le code