開始使用免費開始

Bootstrap 錯誤

你在一家臨床實驗室擔任 R 程式設計師。實驗室的統計學家正在進行大規模分析,想建立不同小鼠品種的平均體重區間。她寫了一個函式 bootstrap(),並透過 futures 後端將它平行套用到 weight_list 的每個元素。然而,程式碼丟出了以下錯誤:

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

她找不到是哪一個 weight_list 的元素造成錯誤,而且也失去了這個耗時計算的所有結果。現在請你修正這段程式碼。furrr 套件已為你載入,且 futures 已規劃為 multisession

本練習屬於課程

R 平行程式設計

檢視課程

練習說明

  • 在大括號中補上能攔截錯誤的函式程式碼。
  • error 引數,提供一個接收單一引數 e 並回傳字串 "Error here!" 的函式。
  • 使用 furrr 的對應函式,將 bootstrap() 對映到 weight_list 的所有元素。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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)
編輯並執行程式碼