Eroarea bootstrap
Lucrezi ca programator R într-un laborator clinic. Statisticianul laboratorului desfășoară o analiză de amploare pentru a stabili intervalele de greutate medie ale diferitelor specii de șoareci. Aceasta a scris o funcție, bootstrap(), aplicată în paralel fiecărui element din weight_list folosind un backend futures. Totuși, codul generează următoarea eroare:
Error in checkForRemoteErrors(val) :
one node produced an error: missing values and NaN's not allowed if 'na.rm' is FALSE
Ea nu reușește să identifice elementul din weight_list care provoacă eroarea și pierde toate rezultatele calculului, care durează mult timp. Ți s-a cerut să rezolvi codul. Pachetul furrr a fost deja încărcat, iar sesiunea multisession pentru futures a fost configurată.
Acest exercițiu face parte din cursul
Programare paralelă în R
Instrucțiuni pentru exercițiu
- Furnizează codul din acolade unei funcții care poate intercepta eroarea.
- Argumentului
error, furnizează o funcție care primește un argument,e, și returnează șirul de caractere"Error here!". - Aplică
bootstrap()tuturor elementelor dinweight_listfolosind o funcție din pachetulfurrr.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)