Comece agoraComece grátis

Aperfeiçoando nossa função com purrr

Ainda estamos aperfeiçoando nossa função para detectar se uma lista de URLs contém elementos que não estão disponíveis.

Vamos revisar o que já codificamos até agora:

  • Um extrator de erros, combinando safely() e map(.x, "error").
  • Um extrator de "não nulos", combinando safely() e discard(.x, is.null).
  • Um gerador de 404, usando possibly(.x, otherwise = 404), que foi transformado em uma função.

Vamos mudar um pouco o comportamento dessa função: agora você quer poder escolher entre retornar os resultados ou os erros.

Isso vai permitir responder a duas perguntas com uma única função: quais URLs estão inacessíveis e quais estão acessíveis? Para isso, você vai adicionar um parâmetro chamado "type" dentro dessa função.

O vetor urls e safe_read() estão disponíveis no seu ambiente de trabalho.

Este exercicio faz parte do curso

Programação Funcional Intermediária com purrr

Ver curso

Instruções do exercicio

Complete a definição da função.

  • Faça o mapeamento de safe_read() para a lista de URLs.
  • Defina os nomes do resultado com a lista de URLs.
  • Transponha o resultado para uma lista de $result e $error.
  • Use pluck() para extrair o elemento type.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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 e Executar Código