CommencezCommencez gratuitement

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() et map(.x, "error").
  • Un extracteur « non nul », en combinant safely() et discard(.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

Voir le cours

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ément type.

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") 
Modifier et exécuter le code