การวนซ้ำด้วย purrr
คุณสร้าง for loop ได้ดีมาก แต่ใช้โค้ดหลายบรรทัดเพื่อทำสิ่งที่ง่ายอย่างการนำเข้าไฟล์ชุดหนึ่งเข้าสู่ลิสต์ นี่คือจุดที่ purrr เข้ามาช่วย เราสามารถทำสิ่งเดียวกับ for loop ได้ใน หนึ่งบรรทัด ด้วย purrr::map() ฟังก์ชัน map() จะวนซ้ำผ่านลิสต์ และใช้ฟังก์ชันอื่นที่ระบุผ่านอาร์กิวเมนต์ .f
map() รับอาร์กิวเมนต์สองตัว:
- ตัวแรกคือลิสต์ที่ต้องการวนซ้ำ
- ตัวที่สองคือฟังก์ชันที่จะทำงานกับแต่ละสมาชิกในลิสต์
ไลบรารี readr โหลดไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Foundations of Functional Programming with purrr
คำแนะนำการฝึกหัด
- โหลดไลบรารี
purrr(สังเกตว่ามีตัว r สามตัว) - จำลอง for loop จากแบบฝึกหัดที่แล้วโดยใช้
map()แทน โดยใช้ลิสต์filesและฟังก์ชันreadr::read_csv()เหมือนเดิม - ตรวจสอบความยาวของ
all_files_purrr
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Load purrr library
library(___)
# Use map to iterate
all_files_purrr <- map(___, ___)
# Output size of list object
length(___)