Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz wewnątrz wywołania map() wersję possibly() funkcji read_lines(), która w razie błędu zwróci wartość 404.

  • Nadaj nazwy elementom wyniku.

  • Użyj funkcji paste() z argumentem collapse ustawionym 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)
Edytuj i uruchom kod