Alles in één aanroep
Om deze code nog beter reproduceerbaar te maken, gaan we een functie schrijven die alles in één keer doet. We hebben alvast een skelet van deze functie voor je klaargezet; nu is het aan jou om hem af te maken!
In de vorige oefeningen hebben we het proces in meerdere stappen opgeschreven. Nu willen we dit in één enkele aanroep doen: we schrijven een functie die een lijst met URL's accepteert en de namen teruggeeft van de elementen die niet bereikbaar zijn.
Zodra je deze functie hebt geschreven, kun je hem opslaan en hergebruiken wanneer je een lijst met URL's wilt opschonen. En misschien stop je hem wel in een package ;)
De lijst urls uit de vorige oefening is beschikbaar in je werkomgeving.
Deze oefening maakt deel uit van de cursus
Gevorderd functioneel programmeren met purrr
Oefeninstructies
Maak, binnen de
map()-aanroep, eenpossibly()-versie vanread_lines()die anders404teruggeeft.Stel de namen van de output in.
Gebruik de functie
paste()met het argumentcollapseingesteld op" "om elke sublijst om te zetten naar een character-vector.Verwijder de elementen die gelijk zijn aan 404.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)