Menyempurnakan fungsi kita
Kita masih menyempurnakan fungsi untuk mendeteksi apakah suatu daftar URL berisi elemen yang tidak tersedia.
Mari tinjau kembali yang sudah kita tulis sejauh ini:
- Ekstraktor galat, dengan menggabungkan
safely()danmap(.x, "error"). - Ekstraktor "non-null", dengan menggabungkan
safely()dandiscard(.x, is.null). - Generator 404, dengan menggunakan
possibly(.x, otherwise = 404), yang kemudian dijadikan fungsi.
Kita akan sedikit mengubah perilaku fungsi ini: sekarang Anda ingin dapat memilih antara mengembalikan hasil atau galat.
Ini akan memungkinkan Anda menjawab dua pertanyaan hanya dengan satu fungsi: URL mana yang tidak dapat dijangkau, dan mana yang dapat dijangkau? Untuk itu, Anda akan menambahkan parameter bernama "type" di dalam fungsi ini.
Vektor urls dan safe_read() tersedia di workspace Anda.
Latihan ini adalah bagian dari kursus
Pemrograman Fungsional Tingkat Menengah dengan purrr
Petunjuk latihan
Lengkapi definisi fungsi.
- Petakan
safe_read()ke daftar URL. - Atur nama hasilnya menjadi daftar URL.
- Transpos hasilnya menjadi sebuah daftar berisi $result dan $error.
- Gunakan
pluck()untuk mengekstrak elementype.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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")