Fonksiyonumuzu purrfekt hâle getirelim
Bir URL listesinin erişilemeyen (mevcut olmayan) öğeler içerip içermediğini tespit eden fonksiyonumuzu hâlâ mükemmelleştiriyoruz.
Hadi şimdiye kadar yazdıklarımızı gözden geçirelim:
safely()vemap(.x, "error")birleştirilerek bir hata ayıklayıcı.safely()vediscard(.x, is.null)birleştirilerek bir "null olmayan" ayıklayıcı.possibly(.x, otherwise = 404)kullanılarak, fonksiyona dönüştürülmüş bir 404 üretici.
Bu fonksiyonun davranışını biraz değiştireceğiz: artık döndürülecek şeyin sonuçlar mı yoksa hatalar mı olacağını seçebilmek istiyorsun.
Bu sayede tek bir fonksiyonla iki soruya yanıt verebileceksin: hangileri erişilemeyen URL'ler ve hangileri erişilebilenler? Bunu yapmak için bu fonksiyonun içine "type" adlı bir parametre ekleyeceksin.
urls vektörü ve safe_read() çalışma alanında hazır.
Bu egzersiz, kursun bir parçasıdır
purrr ile Orta Düzey Fonksiyonel Programlama
Egzersiz talimatları
Fonksiyon tanımını tamamla.
safe_read()fonksiyonunu URL listesinemapet.- Sonucun adlarını URL listesiyle ayarla.
- Sonucu $result ve $error listesine transpoze et.
pluck()kullanaraktypeöğesini çıkar.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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")