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
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 diweight_listusando una funzione difurrr.
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)