การวนซ้ำแบบปลอดภัย
เช่นเดียวกับบทที่แล้ว สมมติว่าคุณเป็นนักวิเคราะห์ข้อมูลที่ทำงานให้กับเอเจนซีเว็บแห่งหนึ่ง คราวนี้ได้รับมอบหมายให้ทำ web scraping
(หมายเหตุ: ไม่ต้องกังวลหากยังไม่คุ้นเคยกับ web scraping เราจะเริ่มจากสิ่งง่าย ๆ และจะอธิบายทุกฟังก์ชันที่ใช้)
คุณได้รับรายการ URL มา แต่สงสัยว่าบางรายการอาจไม่ใช่ที่อยู่จริง สิ่งแรกที่ต้องทำคือทดสอบว่าสามารถเชื่อมต่อกับ URL เหล่านั้นได้หรือไม่ เราจะใช้ฟังก์ชัน read_lines() จากแพ็กเกจ readr โดยนำไปใส่ไว้ใน safely() เมื่อรับ URL เข้ามา read_lines() จะอ่าน HTML หรือคืนค่าข้อผิดพลาดหาก URL นั้นเข้าถึงไม่ได้
เวกเตอร์ urls พร้อมใช้งานอยู่ใน workspace แล้ว หากต้องการดูข้อมูลภายใน ให้พิมพ์ลงใน console
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Functional Programming ระดับกลางด้วย purrr
คำแนะนำการฝึกหัด
สร้างเวอร์ชันที่ปลอดภัยของฟังก์ชัน
read_lines()Map ฟังก์ชันที่สร้างขึ้นใหม่กับเวกเตอร์
urlsที่กำหนดให้กำหนดชื่อให้กับผลลัพธ์ด้วยฟังก์ชัน
set_names()ดึงองค์ประกอบ
"error"ออกจากแต่ละ sublist
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a safe version of read_lines()
safe_read <- ___(___)
# Map it on the urls vector
res <- ___(urls, ___)
# Set the name of the results to `urls`
named_res <- ___(res, ___)
# Extract only the "error" part of each sublist
___(named_res, ___)