Créer une fonction
Nous avons vu comment utiliser safely() pour repérer les URL inaccessibles dans l’exercice précédent : nous avons écrit un petit processus qui appelait une version sécurisée de read_lines() et renvoyait une liste de $errors.
Dans cet exercice, nous allons essayer une autre approche, car nous ne nous concentrerons pas uniquement sur les erreurs. Au lieu d’appliquer une fonction sécurisée puis d’extraire les éléments "error" des résultats, nous allons écrire une fonction utilitaire qui discard() immédiatement les éléments NULL de la sortie de safe_read().
De cette façon, au lieu d’extraire la partie $error ou $result de la sortie, nous pourrons savoir si les éléments sont accessibles (le contenu est renvoyé dans $results) ou s’ils ne le sont pas (dans ce cas, l’erreur est renvoyée dans $error).
Le vecteur urls vous est fourni.
Cet exercice fait partie du cours
<cours>Programmation fonctionnelle intermédiaire avec purrr</cours>Instructions de l’exercice
Créez une version sécurisée de
read_lines().Créez une fonction appelée
safe_read_discard()qui exécute la version sécurisée deread_lines()et quidiscard()les élémentsNULL.Appliquez cette fonction à la liste d’URL qui vous est fournie.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create a safe version of read_lines()
safe_read <- ___
# Code a function that discard() the NULL from safe_read()
safe_read_discard <- function(url){
___(___) %>%
___(is.null)
}
# Map this function on the url list
res <- ___(urls, ___)