EmpezarEmpieza gratis

Perfeccionando nuestra función con purrr

Seguimos puliendo nuestra función para detectar si una lista de URLs contiene elementos que no están disponibles.

Repasemos lo que hemos programado hasta ahora:

  • Un extractor de errores, combinando safely() y map(.x, "error").
  • Un extractor de "no nulos", combinando safely() y discard(.x, is.null).
  • Un generador de 404, usando possibly(.x, otherwise = 404), que convertimos en función.

Vamos a cambiar un poco el comportamiento de esta función: ahora quieres poder elegir entre devolver los resultados o los errores.

Esto te permitirá responder dos preguntas con una sola función: ¿cuáles son las URLs inaccesibles y cuáles son las accesibles? Para ello, añadirás un parámetro llamado "type" dentro de esta función.

El vector urls y safe_read() están disponibles en tu espacio de trabajo.

Este ejercicio forma parte del curso

Programación funcional intermedia con purrr

Ver curso

Instrucciones del ejercicio

Completa la definición de la función.

  • Aplica safe_read() a la lista de URLs con map().
  • Asigna los nombres del resultado a la lista de URLs.
  • Transforma el resultado en una lista de $result y $error con transpose().
  • Usa pluck() para extraer el elemento type.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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") 
Editar y ejecutar código