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

ทำความรู้จักกับการวนซ้ำ

ลองนึกภาพว่าต้องอ่านไฟล์หลายร้อยไฟล์ที่มีโครงสร้างคล้ายกัน และต้องดำเนินการบางอย่างกับไฟล์เหล่านั้น การเขียนโค้ดซ้ำหลายร้อยบรรทัดเพื่ออ่านไฟล์ทั้งหมดนั้นไม่ใช่วิธีที่ดี ทางเลือกที่ดีกว่าคือการ วนซ้ำ (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(___)
แก้ไขและรันโค้ด