CommencerCommencer gratuitement

L’erreur du bootstrap

Vous travaillez comme programmeur R dans un laboratoire clinique. La statisticienne du labo mène une analyse à grande échelle pour établir les intervalles des poids moyens de 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 via un backend futures. Cependant, le code renvoie 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 à identifier l’élément de weight_list qui provoque l’erreur. Elle perd aussi tous les résultats de ce calcul coûteux en temps. On vous a demandé de corriger le code. Le package furrr a été chargé pour vous et multisession a été planifié pour les futures.

Cet exercice fait partie du cours

Programmation parallèle en R

Afficher le cours

Instructions

  • Fournissez, entre les accolades, le code d’une fonction capable d’intercepter l’erreur.
  • Pour l’argument error, fournissez une fonction qui prend un argument, e, et renvoie 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 cet exemple de code.

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