วนซ้ำและกรองข้อมูล
ในฐานะที่ปรึกษาด้านข้อมูล คุณได้รับข้อมูลในรูปแบบและขนาดที่หลากหลาย ล่าสุดลูกค้าส่งไฟล์ CSV ขนาด 40 กิกะไบต์มาให้ ซึ่งบรรจุข้อมูลสถาบันการศึกษาระดับอุดมศึกษาทั่วโลก
นักวิเคราะห์รุ่นใหม่ไม่สามารถอ่านข้อมูลได้เนื่องจากหน่วยความจำไม่เพียงพอ และงบประมาณไม่ครอบคลุมทรัพยากรที่จำเป็นสำหรับการประมวลผลชุดข้อมูลทั้งหมด การวิเคราะห์ครั้งนี้ต้องการเฉพาะข้อมูลของสถาบันในออสเตรเลียเท่านั้น พาธของไฟล์ CSV ถูกเก็บไว้ในตัวแปร filepath แล้ว ให้สร้างตัวอ่านข้อมูลที่มีประสิทธิภาพสำหรับงานนี้ โดยโหลดแพ็กเกจ parallel, doParallel, foreach และ iterators ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนโปรแกรมแบบขนานใน R
คำแนะนำการฝึกหัด
- ใช้ iterator เพื่ออ่านแต่ละบรรทัดจาก
filepath - รวมผลลัพธ์โดยใช้ฟังก์ชันที่เหมาะสมเพื่อสร้าง data frame
- ระบุตัวดำเนินการแบบขนาน (parallel operator)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
cl <- makeCluster(4)
registerDoParallel(cl)
# Use an iterator to read lines
foreach(l = ___,
# Combine the lines as rows
___ = ___
# Use the parallel operator
) ___ {
line <- strsplit(l, ",")[[1]]
if (line[4] == "Australia") {
return(line)
}
}
stopCluster(cl)