เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ข้อผิดพลาดใน Bootstrap

คุณทำงานเป็นโปรแกรมเมอร์ R ในห้องปฏิบัติการทางคลินิก นักสถิติประจำห้องแล็บกำลังทำการวิเคราะห์ขนาดใหญ่เพื่อกำหนดช่วงน้ำหนักเฉลี่ยของหนูสายพันธุ์ต่าง ๆ เธอเขียนฟังก์ชัน bootstrap() เพื่อนำไปใช้กับทุกองค์ประกอบใน weight_list แบบขนานโดยใช้ futures backend อย่างไรก็ตาม โค้ดเกิดข้อผิดพลาดดังนี้:

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

เธอไม่สามารถระบุได้ว่าองค์ประกอบใดใน weight_list ที่ทำให้เกิดข้อผิดพลาด และยังสูญเสียผลลัพธ์ทั้งหมดจากการคำนวณที่ใช้เวลานานอีกด้วย คุณได้รับมอบหมายให้แก้ไขโค้ดนี้ โดยมีการโหลดแพ็กเกจ furrr ไว้ให้แล้ว และได้วางแผน multisession สำหรับ futures เรียบร้อยแล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียนโปรแกรมแบบขนานใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นำโค้ดในวงเล็บปีกกาไปใส่ในฟังก์ชันที่สามารถดักจับข้อผิดพลาดได้
  • สำหรับอาร์กิวเมนต์ error ให้ระบุฟังก์ชันที่รับอาร์กิวเมนต์หนึ่งตัวคือ e และคืนค่าเป็นสตริง "Error here!"
  • ใช้ฟังก์ชันจาก furrr เพื่อ map 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)
แก้ไขและรันโค้ด