ทำความรู้จักกับการวนซ้ำ
ลองนึกภาพว่าต้องอ่านไฟล์หลายร้อยไฟล์ที่มีโครงสร้างคล้ายกัน และต้องดำเนินการบางอย่างกับไฟล์เหล่านั้น การเขียนโค้ดซ้ำหลายร้อยบรรทัดเพื่ออ่านไฟล์ทั้งหมดนั้นไม่ใช่วิธีที่ดี ทางเลือกที่ดีกว่าคือการ วนซ้ำ (iterate) การวนซ้ำคือการทำกระบวนการเดิมซ้ำกับ input หลายชุด ความสามารถในการวนซ้ำช่วยให้โค้ดมีประสิทธิภาพมากขึ้น และยังมีประโยชน์อย่างมากเมื่อทำงานกับ list
ในแบบฝึกหัดนี้ ชื่อของไฟล์ CSV จำนวน 16 ไฟล์ถูกโหลดลงใน list ชื่อ files แล้ว ในงานจริง สามารถใช้ฟังก์ชัน list.files() เพื่อสร้าง list นี้ได้ ไลบรารี readr ก็ถูกโหลดไว้ให้แล้วเช่นกัน
คอร์สนี้ครอบคลุมแนวคิดหลายอย่างที่อาจลืมไปบ้าง หากต้องการทบทวนอย่างรวดเร็ว ดาวน์โหลด tidyverse Cheat Sheet เก็บไว้ใช้ได้เลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Foundations of Functional Programming with purrr
คำแนะนำการฝึกหัด
- สร้าง for loop ที่วนซ้ำบน list
filesโดยนำแต่ละ element ไปใช้เป็น input ของreadr::read_csv()ซึ่งก็คือฟังก์ชันread_csv()จากแพ็กเกจreadr - จากนั้นใช้ผลลัพธ์ที่ได้ เพื่อสร้าง list ที่แต่ละ element คือไฟล์ CSV แต่ละไฟล์ที่ถูกอ่านเข้ามาเก็บไว้ใน list ใหม่ชื่อ
all_files - แสดงขนาดของ list
all_files
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialize list
all_files <- list()
# For loop to read files into a list
for(i in seq_along(files)){
___[[___]] <- read_csv(file = ___[[___]])
}
# Output size of list object
length(___)