Aan de slagGa gratis aan de slag

De bootstrap-fout

Je werkt als R-programmeur voor een klinisch laboratorium. De statisticus in het lab voert een grootschalige analyse uit om bereiken vast te stellen voor de gemiddelde gewichten van verschillende muizensoorten. Zij heeft een functie bootstrap() geschreven die op elk element van weight_list parallel wordt toegepast met een futures-backend. Maar de code geeft de volgende foutmelding:

Error in checkForRemoteErrors(val) : 
  one node produced an error: missing values and NaN's not allowed if 'na.rm' is FALSE

Ze kan het element van weight_list dat de fout veroorzaakt niet vinden. Ook verliest ze alle resultaten van de tijdrovende berekening. Jij bent gevraagd de code te repareren. Het pakket furrr is al voor je geladen en multisession voor de futures is gepland.

Deze oefening maakt deel uit van de cursus

Parallel programmeren in R

Cursus bekijken

Oefeninstructies

  • Voorzie de code tussen de accolades van een functie die de fout kan opvangen.
  • Geef aan het error-argument een functie die één argument, e, aanneemt en de string "Error here!" retourneert.
  • Map bootstrap() naar alle elementen van de weight_list met een furrr-functie.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren