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

ค่าใช้จ่ายด้านสุขภาพด้วย clusterMap()

ในการประชุมด้านสุขภาพที่ผ่านมา มีการอ้างว่าค่าใช้จ่ายด้านสุขภาพรวมทั่วโลกกำลังเพิ่มสูงขึ้น

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

ฟังก์ชัน total_exp() รับอาร์กิวเมนต์สองตัว คือ pop (จำนวนประชากร) และ exp_pc (ค่าใช้จ่ายด้านสุขภาพต่อหัว) และคืนค่าค่าใช้จ่ายรวมในหน่วยพันล้านดอลลาร์สหรัฐ ต้องการนำฟังก์ชันนี้ไปใช้กับ ls_pop และ ls_exp แบบขนาน โดยโหลดแพ็กเกจ parallel ไว้แล้ว

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

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

ดูคอร์ส

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

  • นำ total_exp() ไปใช้แบบขนานกับแต่ละองค์ประกอบของ ls_pop และ ls_exp
  • ระบุลิสต์ที่จะส่งองค์ประกอบไปยังอาร์กิวเมนต์ pop ของ total_exp()
  • ในทำนองเดียวกัน ระบุลิสต์ที่จะส่งไปยังอาร์กิวเมนต์ exp_pc ของ total_exp()

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

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

total_exp <- function (pop, exp_pc) {
 sum(pop * exp_pc)/1e9
}

cl <- makeCluster(4)
# Apply total_exp using cl to multiple arguments
ls_total <- ___(___, ___,
                       # Specify first argument
                       pop = ___,
                       # Specify second argument
                       exp_pc = ___)

stopCluster(cl)

print(paste("Average yearly increase in USD billions:", round(mean(diff(unlist(ls_total))))))
แก้ไขและรันโค้ด