Allt i ett anrop
För att göra koden ännu mer återanvändbar ska vi skriva en funktion som utför allt i ett enda anrop. Vi har redan förberett ett skelett åt dig – nu är det din tur att fylla i resten!
I de tidigare övningarna delade vi upp processen i flera steg. Nu vill vi samla allt i ett enda anrop: vi skriver en funktion som tar en lista med URL:er och returnerar namnen på de element som inte går att nå.
När du har skrivit funktionen kan du spara den och återanvända den när du behöver städa en lista med URL:er. Och kanske lägga in den i ett paket ;)
Listan urls från den föregående övningen finns tillgänglig i din arbetsmiljö.
Den här övningen är en del av kursen
Funktionell programmering på mellannivå med purrr
Övningsinstruktioner
Skapa, inuti
map()-anropet, enpossibly()-version avread_lines()som annars returnerar404.Ange namnen på utdata.
Använd funktionen
paste()med argumentetcollapsesatt till" "för att omvandla varje underlista till en teckensträng.Ta bort de element som är lika med 404.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)