CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Créez, à l’intérieur de l’appel à map(), une version possibly() de read_lines() qui renverra sinon un 404.

  • Définissez les noms de la sortie.

  • Utilisez la fonction paste() avec l’argument collapse dé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)
Modifier et exécuter le code