Wszystko w jednym wywołaniu
Aby kod był jeszcze bardziej wielokrotnego użytku, stworzymy funkcję, która wykonuje całą operację w jednym wywołaniu. Przygotowaliśmy już dla ciebie szkielet tej funkcji – teraz twoja kolej, żeby ją uzupełnić!
W poprzednich ćwiczeniach cały proces był rozpisany na kilka kroków. Teraz chcemy zamknąć go w jednym wywołaniu: napiszemy funkcję, która przyjmuje listę URL-i i zwraca nazwy elementów, które są nieosiągalne.
Gotową funkcję możesz zapisać i używać jej zawsze, gdy trzeba będzie oczyścić listę URL-i. A może nawet umieścić ją w pakiecie ;)
Lista urls z poprzedniego ćwiczenia jest dostępna w twoim środowisku.
To ćwiczenie jest częścią kursu
Funkcyjne programowanie średnio zaawansowane z purrr
Instrukcje do ćwiczenia
Utwórz wewnątrz wywołania
map()wersjępossibly()funkcjiread_lines(), która w razie błędu zwróci wartość404.Nadaj nazwy elementom wyniku.
Użyj funkcji
paste()z argumentemcollapseustawionym na" ", aby przekształcić każdą podlistę w wektor znakowy.Usuń elementy równe 404.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)