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

safely() แทนที่ด้วย NA

เมื่อใช้ map() กับลิสต์ แล้วมีองค์ประกอบบางตัวที่ไม่ใช่ประเภทข้อมูลที่ถูกต้อง ผลลัพธ์ที่ได้อาจไม่เป็นไปตามที่คาดไว้ ตัวอย่างเช่น หากต้องการทำการคำนวณทางคณิตศาสตร์กับแต่ละองค์ประกอบ แต่กลับพบว่ามีบางตัวเป็น character โค้ดก็จะทำงานไม่ได้

หากลิสต์มีขนาดใหญ่มาก การตามหาว่าปัญหาเกิดขึ้นที่ไหนและเกิดอะไรขึ้นกันแน่อาจเป็นเรื่องยาก นั่นคือจุดที่ safely() เข้ามาช่วย โดยจะแสดงทั้งผลลัพธ์และตำแหน่งที่เกิด error จากการเรียก map() ของคุณ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Foundations of Functional Programming with purrr

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Map safely over log
a <- list(1, "I can", 10, 0, "purrr") %>%
      map(___(___, otherwise = NA_real_)) %>%
    # Transpose the result
      transpose() 
แก้ไขและรันโค้ด