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
Instrucciones del ejercicio
Crea, dentro de la llamada a
map(), una versión conpossibly()deread_lines()que, en caso contrario, devuelva404.Establece los nombres de la salida.
Usa la función
paste()con el argumentocollapseconfigurado 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)