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 trame pour cette fonction ; à vous de la compléter !
Dans les exercices précédents, nous avons écrit le processus en plusieurs étapes. Maintenant, nous voulons tout faire en un seul appel : nous allons donc écrire une fonction qui prend une liste d’URL et renvoie les noms des éléments qui ne sont pas accessibles.
Une fois cette fonction écrite, vous pourrez la sauvegarder et la réutiliser dès que vous aurez besoin de nettoyer une liste d’URL. Et pourquoi pas l’intégrer dans un package ;)
La liste urls de l’exercice précédent est disponible dans votre espace de travail.
Cet exercice fait partie du cours
<cours>Programmation fonctionnelle intermédiaire avec purrr</cours>Instructions de l’exercice
Créez, à l’intérieur de l’appel à
map(), une versionpossibly()deread_lines()qui renverra sinon un404.Définissez les noms de la sortie.
Utilisez la fonction
paste()avec l’argumentcollapsedéfini à" "pour transformer chaque sous-liste en vecteur de caractères.Supprimez les éléments é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)