Bắt đầu ngayBắt đầu miễn phí

Tạo một hàm

Ở bài trước, bạn đã thấy cách dùng safely() để nhận diện các url không truy cập được: chúng ta viết một quy trình nhỏ gọi một phiên bản an toàn của read_lines() và trả về một list các $errors.

Trong bài này, ta thử một cách khác vì không chỉ tập trung vào lỗi. Thay vì map một hàm an toàn rồi trích xuất các phần tử "error" từ kết quả, ta sẽ viết một hàm tiện ích giúp discard() ngay các phần tử NULL trong đầu ra của safe_read().

Như vậy, thay vì phải trích xuất phần $error hoặc $result của đầu ra, bạn sẽ biết được phần tử nào truy cập được (nội dung nằm trong $results) và phần tử nào không (khi đó lỗi nằm trong $error).

Vector urls đã được cung cấp sẵn cho bạn.

Bài tập này là một phần của khóa học

Lập trình hàm nâng cao với purrr

Xem khóa học

Hướng dẫn bài tập

  • Tạo một phiên bản an toàn của read_lines().

  • Tạo một hàm tên safe_read_discard() để chạy phiên bản an toàn của read_lines()discard() các phần tử NULL.

  • Map hàm này lên danh sách url đã được cung cấp cho bạn.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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, ___)
Chỉnh sửa và Chạy Mã