Hepsi tek bir çağrıda
Bu kodu daha da yeniden üretilebilir yapmak için, her şeyi tek bir çağrıda yapan bir fonksiyon yazacağız. Bu fonksiyon için bir iskelet zaten verdik, şimdi onu tamamlama sırası sende!
Önceki egzersizlerde süreci birkaç adımda yazmıştık. Şimdi bunu tek bir çağrıyla yapmak istiyoruz: bunun için bir fonksiyon yazacağız; bu fonksiyon bir URL listesini alacak ve erişilemeyen öğelerin adlarını döndürecek.
Bu fonksiyonu yazdıktan sonra kaydedebilir ve ne zaman bir URL listesini temizlemen gerekirse yeniden kullanabilirsin. Hatta belki bir pakete koyarsın ;)
Önceki egzersizdeki urls listesi çalışma alanında mevcut.
Bu egzersiz, kursun bir parçasıdır
purrr ile Orta Düzey Fonksiyonel Programlama
Egzersiz talimatları
map()çağrısının içinde, aksi halde404döndürecek şekilderead_lines()için birpossibly()sürümü oluştur.Çıktının adlarını ayarla.
Her alt listeyi bir karakter vektörüne dönüştürmek için
collapseargümanı" "olacak şekildepaste()fonksiyonunu kullan.404'e eşit olan öğeleri kaldır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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)