Peaufiner notre fonction avec purrr
Nous peaufinons encore notre fonction pour détecter si une liste d'URL contient des éléments non accessibles.
Reprenons ce que nous avons codé jusqu'ici :
- Un extracteur d'erreurs, en combinant
safely()etmap(.x, "error"). - Un extracteur « non nul », en combinant
safely()etdiscard(.x, is.null). - Un générateur de 404, en utilisant
possibly(.x, otherwise = 404), qui a été transformé en fonction.
Nous allons légèrement modifier le comportement de cette fonction : vous voulez maintenant pouvoir choisir de retourner soit les résultats, soit les erreurs.
Cela vous permettra de répondre à deux questions avec une seule fonction : quelles sont les URL inaccessibles et lesquelles sont accessibles? Pour ce faire, vous ajouterez un paramètre appelé « type » à l'intérieur de cette fonction.
Le vecteur urls et safe_read() sont disponibles dans votre environnement de travail.
Cette activité fait partie du cours
Programmation fonctionnelle intermédiaire avec purrr
Instructions de l’exercice
Complétez la définition de la fonction.
- Appliquez
safe_read()à la liste d'URL avec map. - Attribuez aux résultats les noms de la liste d'URL.
- Transposez le résultat en une liste de $result et $error.
- Utilisez
pluck()pour extraire l'élémenttype.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Complete the function definition
url_tester <- function(url_list, type = c("result", "error")) {
type <- match.arg(type)
url_list %>%
# Apply safe_read to each URL
___(___) %>%
# Set the names to the URLs
___(___) %>%
# Transpose into a list of $result and $error
___() %>%
# Pluck the type element
___(___)
}
# Try this function on the urls object
url_tester(urls, type = "error")