แทนที่ safely() ด้วย possibly()
เมื่อเข้าใจวิธีแก้ปัญหาด้วย safely() แล้ว (เช่น แสดงค่า NA แทนที่จะเกิด error) ก็ถึงเวลาเปลี่ยนมาใช้ possibly() แทน possibly() จะรันโค้ดและปรับแก้ตามที่ต้องการโดยไม่แสดงข้อความ error ให้รกหน้าจอ
คราวนี้จะใช้ map() กับ log() อีกครั้ง แต่เปลี่ยนมาใช้ possibly() แทน safely() เนื่องจากรู้วิธีจัดการ error แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Foundations of Functional Programming with purrr
คำแนะนำการฝึกหัด
- ใช้
map()กับ list ที่กำหนดให้เพื่อคำนวณlog()ของแต่ละ element โดยใช้possibly() - ใช้
NA_real_เพื่อจัดการกับ element ที่มีประเภทข้อมูลไม่ถูกต้อง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Take the log of each element in the list
list(1, "I can", 10, 0, "purrr") %>%
map(___(function(___){
log(___)
}, ___))