EmpezarEmpieza gratis

Todo en una sola llamada

Para que este código sea aún más reproducible, vamos a crear una función que lo haga todo en una sola llamada. Ya te hemos dado el esqueleto de esta función; ahora te toca completarlo.

En los ejercicios anteriores, escribimos el proceso en varios pasos. Ahora queremos hacerlo de una sola vez: escribiremos una función que reciba una lista de URLs y devuelva los nombres de los elementos que no son accesibles.

Cuando tengas esta función, podrás guardarla y reutilizarla siempre que necesites limpiar una lista de URLs. Y quizá incluirla en un paquete ;)

La lista urls del ejercicio anterior está disponible en tu espacio de trabajo.

Este ejercicio forma parte del curso

Programación funcional intermedia con purrr

Ver curso

Instrucciones del ejercicio

  • Crea, dentro de la llamada a map(), una versión con possibly() de read_lines() que, en caso contrario, devuelva 404.

  • Establece los nombres de la salida.

  • Usa la función paste() con el argumento collapse configurado a " " para convertir cada sublista en un vector de caracteres.

  • Elimina los elementos que sean iguales a 404.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

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