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)