Tudo em uma única chamada
Para deixar este código ainda mais reprodutível, vamos criar uma função que faça tudo em uma única chamada. Já fornecemos um esqueleto para essa função; agora é a sua vez de completá-la!
Nos exercícios anteriores, escrevemos o processo em várias etapas. Agora, queremos que isso seja feito em apenas uma chamada: vamos escrever uma função que recebe uma lista de URLs e retorna os nomes dos elementos que não estão acessíveis.
Depois de escrever essa função, você pode salvá-la e reutilizá-la sempre que precisar limpar uma lista de URLs. E quem sabe até colocá-la em um pacote ;)
A lista urls do exercício anterior está disponível no seu ambiente de trabalho.
Este exercicio faz parte do curso
Programação Funcional Intermediária com purrr
Instruções do exercicio
Crie, dentro da chamada
map(), uma versão compossibly()deread_lines()que, caso contrário, retorne404.Defina os nomes da saída.
Use a função
paste()com o argumentocollapsedefinido como" "para transformar cada sublista em um vetor de caracteres.Remova os elementos que são iguais a 404.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
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)