การระบุประเภทใน Furrr
สมมติว่าต้องการศึกษาต่อระดับปริญญาโทสาขาวิศวกรรมศาสตร์ในสหรัฐอเมริกา และต้องการเลือกมหาวิทยาลัยที่มีชื่อเสียงทางวิชาการ
มีชุดข้อมูลคะแนนมหาวิทยาลัยในรูปแบบ data frame ชื่อ uni_data โดยมีคอลัมน์ total_score ที่เก็บคะแนนทางวิชาการด้านวิศวกรรมศาสตร์ (คะแนนเต็ม 100) ของแต่ละมหาวิทยาลัยในสหรัฐอเมริกา ต้องการสร้างคอลัมน์ใหม่ชื่อ criteria ที่มีค่าเป็นสตริง "Pass" สำหรับมหาวิทยาลัยที่มี total_score มากกว่า 80 และ "Fail" สำหรับมหาวิทยาลัยที่ได้คะแนนต่ำกว่า หากคะแนนขาดหายไปให้กำหนดค่าเป็น NA
มีฟังก์ชัน criterion_function() อยู่ใน workspace แล้ว และจะนำฟังก์ชันนี้ไปใช้กับ total_score โดยเลือก future_map() variant ที่เหมาะสม แพ็กเกจ parallel และ furrr ถูกโหลดให้เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนโปรแกรมแบบขนานใน R
คำแนะนำการฝึกหัด
- กำหนด multisession plan โดยใช้ core ทั้งหมดที่มียกเว้น 2 core
- สร้างคอลัมน์ใหม่โดยใช้
future_map()variant ที่ถูกต้องเพื่อ mapcriterion_function()เข้ากับคอลัมน์total_score - เปลี่ยนกลับไปใช้ sequential plan
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Plan a multisession to use all cores but two
n_cores <- ___
___(___, ___)
# Create new column using the correct future_map variant
uni_data %>%
mutate(criteria = ___(___, ___))
# Revert to a sequential plan
___