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
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ủaread_lines()và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, ___)