Kom igångKom igång gratis

Purrrfecting our function

Vi fortsätter att förfina vår funktion för att identifiera URL:er i en lista som inte är tillgängliga.

Låt oss gå igenom vad vi har kodat hittills:

  • En felextraktor, genom att kombinera safely() och map(.x, "error").
  • En extractor för icke-null-värden, genom att kombinera safely() och discard(.x, is.null).
  • En 404-generator, med hjälp av possibly(.x, otherwise = 404), som gjordes om till en funktion.

Vi ändrar funktionens beteende lite: nu vill du kunna välja om funktionen ska returnera antingen resultaten eller felen.

Det gör att du kan besvara två frågor med bara en funktion: vilka URL:er är inte nåbara, och vilka är det? För att åstadkomma det lägger du till en parameter som heter "type" i funktionen.

Vektorn urls och safe_read() finns tillgängliga i din arbetsmiljö.

Den här övningen är en del av kursen

Funktionell programmering på mellannivå med purrr

Visa kurs

Övningsinstruktioner

Slutför funktionsdefinitionen.

  • Mappa safe_read() till listan med URL:er.
  • Ge resultatet samma namn som listan med URL:er.
  • Transponera resultatet till en lista med $result och $error.
  • Använd pluck() för att extrahera elementet type.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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") 
Redigera och kör kod