IniziaInizia gratis

L'errore del bootstrap

Lavori come programmatore R in un laboratorio clinico. La statistica del laboratorio sta conducendo un'analisi su larga scala per stabilire gli intervalli dei pesi medi di diverse specie di topi. Ha scritto una funzione, bootstrap(), che viene applicata a ogni elemento di weight_list in parallelo usando un backend futures. Tuttavia, il codice genera il seguente errore:

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

Non riesce a trovare l'elemento di weight_list che causa l'errore. Inoltre, perde tutti i risultati del calcolo, che richiede molto tempo. Ti è stato chiesto di correggere il codice. Il pacchetto furrr è stato caricato per te e multisession per le futures è già stato pianificato.

Questo esercizio fa parte del corso

Programmazione parallela in R

Visualizza il corso

Istruzioni dell'esercizio

  • Inserisci tra le parentesi graffe il codice per una funzione che intercetti l'errore.
  • Per l'argomento error, fornisci una funzione che prenda un argomento, e, e restituisca la stringa "Error here!".
  • Applica il mapping di bootstrap() a tutti gli elementi di weight_list usando una funzione di furrr.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)
Modifica ed esegui il codice