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

การวนลูปด้วย foreach

กระทรวงสาธารณสุขของสหรัฐอเมริกาได้รับรายงานว่าอัตราผลลัพธ์ที่ไม่พึงประสงค์ระหว่างการคลอดบุตรสูงขึ้น คุณต้องการสืบสวนว่าแนวโน้มนี้เกิดจากอายุของมารดาที่ต่ำหรือสูงเกินไปหรือไม่ ทีมของคุณได้รวบรวมชุดข้อมูลการคลอดของปีก่อนหน้า โดยมีลิสต์ ls_age ซึ่งแต่ละองค์ประกอบเป็นเวกเตอร์ของอายุมารดาสำหรับการคลอดทุกรายการที่บันทึกในแต่ละรัฐของสหรัฐอเมริกา

ลูปต่อไปนี้คำนวณเปอร์เซ็นต์ของการคลอดในแต่ละรัฐที่อายุมารดาน้อยกว่า 20 ปี หรือมากกว่า 35 ปี:

at_risk_perc <- rep(NA, length(ls_age))

for (m in 1:length(ls_age)) {
  at_risk_perc[m] <- 
    sum(ls_age[[m]] > 35 | ls_age[[m]] < 20) * 100/length(ls_age[[m]])
}

อย่างไรก็ตาม การรันลูปนี้ใช้เวลานานเกินไป จึงต้องการทดสอบตัวเลือกอื่น โดยได้โหลด foreach, parallel และ doParallel ไว้ให้แล้ว

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

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

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Specify input to loop over 
at_risk_perc <- foreach(m = ___
                        # Specify the sequential operator
                       ) ___ {
  sum(m > 35 | m < 20) * 100/length(m)}
แก้ไขและรันโค้ด