Semua dalam satu pemanggilan
Agar kode ini makin mudah direproduksi, kita akan membuat sebuah fungsi yang melakukannya dalam satu kali pemanggilan. Kami sudah menyiapkan kerangka fungsi tersebut; sekarang giliran Anda menyelesaikannya!
Pada latihan sebelumnya, kita menulis prosesnya dalam beberapa langkah. Kini, kita ingin melakukannya hanya dengan satu pemanggilan: kita akan menulis fungsi yang menerima daftar URL, lalu mengembalikan nama elemen yang tidak dapat dijangkau.
Setelah Anda menulis fungsi ini, Anda dapat menyimpannya dan menggunakannya kembali kapan pun Anda perlu membersihkan daftar URL. Dan mungkin memasukkannya ke dalam sebuah paket ;)
Daftar urls dari latihan sebelumnya tersedia di workspace Anda.
Latihan ini adalah bagian dari kursus
Pemrograman Fungsional Tingkat Menengah dengan purrr
Petunjuk latihan
Buat, di dalam pemanggilan
map(), versipossibly()dariread_lines()yang jika gagal akan mengembalikan404.Atur nama dari keluaran.
Gunakan fungsi
paste()dengan argumencollapsediatur ke" "untuk mengubah setiap subdaftar menjadi vektor karakter.Hapus elemen yang sama dengan 404.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
url_tester <- function(url_list){
url_list %>%
# Map a version of read_lines() that otherwise returns 404
map( ___(___, otherwise = ___) ) %>%
# Set the names of the result
___( urls ) %>%
# paste() and collapse each element
map(___, ___ = " ") %>%
# Remove the 404
___(___) %>%
names() # Will return the names of the good ones
}
# Try this function on the urls object
url_tester(urls)