Chyba v bootstrapu
Pracuješ jako R programátor/ka v klinické laboratoři. Statistička v laboratoři provádí rozsáhlou analýzu s cílem stanovit referenční rozsahy průměrných hmotností různých druhů myší. Napsala funkci bootstrap(), která se pomocí futures backendu paralelně aplikuje na každý prvek seznamu weight_list. Kód ale vyhodí následující chybu:
Error in checkForRemoteErrors(val) :
one node produced an error: missing values and NaN's not allowed if 'na.rm' is FALSE
Statistička nedokáže najít, který prvek seznamu weight_list chybu způsobuje. Navíc přichází o všechny výsledky zdlouhavého výpočtu. Tvým úkolem je kód opravit. Balíček furrr je již načten a pro futures je naplánována multisession.
Toto cvičení je součástí kurzu
Paralelní programování v R
Pokyny k cvičení
- Předej kód ve složených závorkách funkci, která dokáže zachytit chybu.
- Argumentu
errorpředej funkci, která přijímá jeden argumentea vrací řetězec"Error here!". - Namapuj funkci
bootstrap()na všechny prvky seznamuweight_listpomocí vhodné funkce z balíčkufurrr.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)