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

สร้างฟังก์ชัน

ในแบบฝึกหัดก่อนหน้า เราได้เห็นวิธีใช้ safely() เพื่อตรวจสอบ URL ที่เข้าถึงไม่ได้ โดยเขียนกระบวนการเล็ก ๆ ที่เรียกใช้ read_lines() เวอร์ชัน safe แล้วคืนค่าเป็นลิสต์ของ $errors

ในแบบฝึกหัดนี้ เราจะลองใช้แนวทางอื่น โดยไม่ได้มุ่งเน้นที่ข้อผิดพลาดเพียงอย่างเดียว แทนที่จะ map ฟังก์ชัน safe แล้วดึงส่วน "error" จากผลลัพธ์ เราจะเขียน helper function ที่ discard() ค่า NULL ออกจากผลลัพธ์ของ safe_read() ได้ทันที

ด้วยวิธีนี้ แทนที่จะต้องดึงส่วน $error หรือ $result ออกมาเอง เราจะสามารถรู้ได้เลยว่า element ใดเข้าถึงได้ (เนื้อหาจะถูกส่งคืนใน $results) หรือเข้าถึงไม่ได้ (จะได้รับข้อผิดพลาดใน $error แทน)

เวกเตอร์ urls ได้เตรียมไว้ให้แล้ว

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

Functional Programming ระดับกลางด้วย purrr

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง read_lines() เวอร์ชัน safe

  • สร้างฟังก์ชันชื่อ safe_read_discard() ที่จะรัน read_lines() เวอร์ชัน safe แล้ว discard() ค่า NULL ออก

  • Map ฟังก์ชันนี้บนลิสต์ URL ที่เตรียมไว้ให้

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

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

# Create a safe version of read_lines()
safe_read <- ___

# Code a function that discard() the NULL from safe_read()
safe_read_discard <- function(url){
  ___(___) %>%
    ___(is.null)
}

# Map this function on the url list
res <- ___(urls, ___)
แก้ไขและรันโค้ด