Kom igångKom igång gratis

Bootstrap-felet

Du arbetar som R-programmerare på ett kliniskt laboratorium. Statistikern på labbet genomför en storskalig analys för att fastställa normalvärden för genomsnittsvikten hos olika musarter. Hon har skrivit en funktion, bootstrap(), som appliceras på varje element i weight_list parallellt med hjälp av ett futures-backend. Koden ger dock följande fel:

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

Hon kan inte identifiera vilket element i weight_list som orsakar felet. Dessutom förlorar hon alla resultat från den tidskrävande beräkningen. Du har fått i uppgift att åtgärda koden. Paketet furrr är redan inläst och multisession har planerats för futures.

Den här övningen är en del av kursen

Parallell programmering i R

Visa kurs

Övningsinstruktioner

  • Lägg in koden i de klammerparenteser som ska skickas till en funktion som kan fånga felet.
  • Ange som error-argument en funktion som tar ett argument, e, och returnerar strängen "Error here!".
  • Applicera bootstrap() på alla element i weight_list med hjälp av en furrr-funktion.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod