Zacznij terazZacznij za darmo

Błąd w bootstrapie

Pracujesz jako programista R w laboratorium klinicznym. Statystyk zatrudniony w laboratorium prowadzi zakrojoną na szeroką skalę analizę, której celem jest wyznaczenie przedziałów średnich mas ciała dla różnych gatunków myszy. Napisał funkcję bootstrap(), która jest stosowana równolegle do każdego elementu listy weight_list z użyciem backendu futures. Jednak kod zgłasza następujący błąd:

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

Statystyk nie może znaleźć elementu listy weight_list, który wywołuje błąd. Na dodatek traci wszystkie wyniki czasochłonnych obliczeń. Twoim zadaniem jest naprawienie kodu. Pakiet furrr jest już wczytany, a plan multisession dla futures został skonfigurowany.

To ćwiczenie jest częścią kursu

Programowanie równoległe w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Umieść kod w nawiasach klamrowych wewnątrz funkcji, która potrafi przechwycić błąd.
  • W argumencie error podaj funkcję przyjmującą jeden argument, e, i zwracającą ciąg znaków "Error here!".
  • Zastosuj funkcję bootstrap() do wszystkich elementów listy weight_list przy użyciu odpowiedniej funkcji z pakietu furrr.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod