Tout en un seul appel
Pour rendre ce code encore plus reproductible, nous allons créer une fonction qui fait tout en un seul appel. Nous vous avons déjà fourni une structure de base pour cette fonction, à vous de la compléter!
Dans les exercices précédents, nous avons découpé le processus en plusieurs étapes. Maintenant, nous voulons que tout se fasse en un seul appel : nous allons donc écrire une fonction qui prend une liste d'URL et retourne les noms des éléments qui ne sont pas accessibles.
Une fois cette fonction écrite, vous pourrez l'enregistrer et la réutiliser dès que vous aurez besoin de nettoyer une liste d'URL. Et pourquoi pas l'intégrer dans un paquet ;)
La liste urls de l'exercice précédent est disponible dans votre espace de travail.
Cette activité fait partie du cours
Programmation fonctionnelle intermédiaire avec purrr
Instructions de l’exercice
Créez, à l'intérieur de l'appel à
map(), une versionpossibly()deread_lines()qui retournera autrement un404.Attribuez des noms à la sortie.
Utilisez la fonction
paste()avec l'argumentcollapsedéfini à" "pour transformer chaque sous-liste en vecteur de caractères.Retirez les éléments qui sont égaux à 404.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)