Zacznij terazZacznij za darmo

Dopieszczamy naszą funkcję

Wciąż udoskonalamy funkcję, która sprawdza, czy lista adresów URL zawiera niedostępne elementy.

Przyjrzyjmy się temu, co zostało już napisane:

  • Ekstraktor błędów – powstały przez połączenie safely() i map(.x, "error").
  • Ekstraktor wartości niezerowych – powstały przez połączenie safely() i discard(.x, is.null).
  • Generator kodów 404 – z użyciem possibly(.x, otherwise = 404), opakowany w funkcję.

Zmodyfikujemy teraz nieco działanie tej funkcji: chcesz mieć możliwość wyboru, czy zwracane mają być wyniki, czy błędy.

Dzięki temu jedna funkcja pozwoli odpowiedzieć na dwa pytania: które adresy URL są nieosiągalne, a które działają poprawnie? W tym celu dodasz do funkcji parametr o nazwie "type".

Wektor urls oraz funkcja safe_read() są dostępne w twoim środowisku.

To ćwiczenie jest częścią kursu

Funkcyjne programowanie średnio zaawansowane z purrr

Zobacz kurs

Instrukcje do ćwiczenia

Uzupełnij definicję funkcji.

  • Zastosuj safe_read() do listy adresów URL za pomocą map().
  • Nadaj wynikom nazwy odpowiadające liście adresów URL.
  • Zastosuj transpozycję wyniku, aby uzyskać listę elementów $result i $error.
  • Użyj pluck(), aby wyodrębnić element type.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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") 
Edytuj i uruchom kod