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

foreach กับตัวแปรและแพ็กเกจ

อัตราการเติบโตของประชากร (growth rate) แสดงเป็นร้อยละ ปัจจุบันเกือบทุกประเทศมีอัตราการเติบโตที่ลดลง แต่บางประเทศลดลงเร็วกว่าประเทศอื่น

คุณได้รับมอบหมายให้ทำงานในตำแหน่ง Demographics Analyst โดยมีภารกิจคำนวณอัตราส่วนระหว่างอัตราการเติบโตของประชากรในแต่ละประเทศกับอัตราการเติบโตของประชากรโลกในช่วงปี 2017 ถึง 2021 ข้อมูลที่ได้รับมาคือ list ของ data frame ชื่อ ls_df ซึ่งแต่ละ data frame มีโครงสร้างดังนี้:

    country year growth_rate
Afghanistan 2017        2.52
...

นอกจากนี้ยังมี data frame ของอัตราการเติบโตระดับโลกชื่อ df_global:

year global_growth
2017          1.15
...

foreach และ dplyr ถูกโหลดไว้ให้แล้ว รวมถึงได้สร้างและลงทะเบียน cluster กับ backend ของ foreach เรียบร้อยแล้ว

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

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

ดูคอร์ส

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

  • ส่งออก df_global ไปยัง cluster ภายใน foreach()
  • ระบุแพ็กเกจ dplyr ที่จำเป็นสำหรับการคำนวณ
  • ระบุ rbind เป็นวิธีรวมผลลัพธ์
  • ใช้ parallel operator

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

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

df_comp <- foreach(df = ls_df,
                   # Export variable
                   ___,
                   # Specify any package needed
                   ___,
                   # Specify a combine method 
                   ___
                   # Use the parallel operator
                  ) ___ {
    df %>%
      left_join(df_global, "year") %>% 
      mutate(comp = growth_rate/global_growth)
}

stopCluster(cl)
แก้ไขและรันโค้ด