Der Bootstrap-Fehler
Du arbeitest als R-Programmierer:in in einem klinischen Labor. Die Statistikerin im Labor führt eine groß angelegte Analyse durch, um Bereiche für die durchschnittlichen Gewichte verschiedener Mausarten zu bestimmen. Sie hat eine Funktion bootstrap() geschrieben, die mit einem Futures-Backend parallel auf jedes Element von weight_list angewendet wird. Der Code wirft jedoch den folgenden Fehler:
Error in checkForRemoteErrors(val) :
one node produced an error: missing values and NaN's not allowed if 'na.rm' is FALSE
Sie kann das Element von weight_list nicht finden, das den Fehler verursacht. Außerdem verliert sie alle Ergebnisse der zeitaufwendigen Berechnung. Du wurdest gebeten, den Code zu reparieren. Das Paket furrr wurde für dich geladen und multisession für die Futures wurde geplant.
Diese Übung ist Teil des Kurses
Paralleles Programmieren in R
Anleitung zur Übung
- Gib den Code in den geschweiften Klammern an eine Funktion, die den Fehler abfangen kann.
- Übergib dem error-Argument eine Funktion, die ein Argument
enimmt und den String"Error here!"zurückgibt. - Wende
bootstrap()mit einerfurrr-Funktion auf alle Elemente vonweight_listan.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)