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()ochmap(.x, "error"). - En extractor för icke-null-värden, genom att kombinera
safely()ochdiscard(.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
Ö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 elementettype.
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")