Hoàn thiện function với purrr
Chúng ta vẫn đang hoàn thiện một function để phát hiện xem một danh sách URL có chứa phần tử không khả dụng hay không.
Hãy điểm lại những gì bạn đã viết đến giờ:
- Bộ trích xuất lỗi, bằng cách kết hợp
safely()vàmap(.x, "error"). - Bộ trích xuất "không-null", bằng cách kết hợp
safely()vàdiscard(.x, is.null). - Bộ tạo 404, bằng cách dùng
possibly(.x, otherwise = 404), rồi chuyển thành một function.
Chúng ta sẽ thay đổi một chút hành vi của function này: giờ bạn muốn có thể chọn giữa việc trả về kết quả hoặc lỗi.
Điều này cho phép bạn trả lời hai câu hỏi chỉ với một function: URL nào không truy cập được và URL nào truy cập được? Để làm vậy, bạn sẽ thêm một tham số tên là "type" vào trong function này.
Vector urls và safe_read() đã có sẵn trong workspace của 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
Hoàn thiện định nghĩa function.
- Map
safe_read()lên danh sách URL. - Đặt tên của kết quả theo danh sách URL.
- Chuyển vị (transpose) kết quả thành một list gồm $result và $error.
- Dùng
pluck()để trích xuất phần tửtype.
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.
# Complete the function definition
url_tester <- function(url_list, type = c("result", "error")) {
type <- match.arg(type)
url_list %>%
# Apply safe_read to each URL
___(___) %>%
# Set the names to the URLs
___(___) %>%
# Transpose into a list of $result and $error
___() %>%
# Pluck the type element
___(___)
}
# Try this function on the urls object
url_tester(urls, type = "error")