Perfecționăm funcția
Continuăm să perfecționăm funcția care detectează dacă o listă de URL-uri conține elemente indisponibile.
Hai să trecem în revistă ce am scris până acum:
- Un extractor de erori, prin combinarea
safely()cumap(.x, "error"). - Un extractor de valori non-nule, prin combinarea
safely()cudiscard(.x, is.null). - Un generator de erori 404, folosind
possibly(.x, otherwise = 404), transformat într-o funcție.
Vom modifica puțin comportamentul acestei funcții: acum vrei să poți alege între a returna rezultatele sau erorile.
Astfel, vei putea răspunde la două întrebări cu o singură funcție: care sunt URL-urile inaccesibile și care sunt cele accesibile? Pentru aceasta, vei adăuga un parametru numit „type" în interiorul funcției.
Vectorul urls și funcția safe_read() sunt disponibile în spațiul tău de lucru.
Acest exercițiu face parte din cursul
Programare funcțională intermediară cu purrr
Instrucțiuni pentru exercițiu
Completează definiția funcției.
- Aplică
safe_read()pe lista de URL-uri folosindmap(). - Setează numele rezultatului la lista de URL-uri.
- Transpune rezultatul într-o listă de $result și $error.
- Folosește
pluck()pentru a extrage elementultype.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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")