Limpe seus dados com keep
Desde o início deste curso, estamos usando os resultados de um teste A/B que durou uma semana.
Colocamos esses resultados em uma lista chamada all_visits. Essa lista contém visit_a, visit_b e visit_c. Esses vetores não têm nomes. Todos contêm sete números, um para cada dia da semana.
A primeira pergunta que queremos responder é: quais dias tiveram, em média, mais de 100 visitas por hora? Vamos usar a função keep(). Mas a resposta não seria legível com um vetor sem nomes: você teria os números, mas não saberia a que dia eles correspondem.
A boa notícia é: você pode usar a função set_names() para resolver isso. É isso que faremos neste capítulo: primeiro, usar keep() em vetores sem nomes e, depois, em vetores nomeados.
Este exercicio faz parte do curso
Programação Funcional Intermediária com purrr
Instruções do exercicio
- Crie um mapper que teste se
.xé maior que 100. Você vai usá-lo duas vezes. - Combinando esse mapper com
keep(), faça o mapeamento na lista sem nomesall_visit. Como o resultado não tem nomes, você não sabe quais dias foram mantidos. - Dê nome a cada vetor combinando
map()e a funçãoset_names(), usando o vetor de nomes que fornecemos. - Faça o mapeamento do mapper criado anteriormente na nova lista nomeada. Como você pode ver, agora está bem mais legível!
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Create a mapper that test if .x is more than 100
is_more_than_hundred <- ___(~ .x > 100)
# Use this mapper with keep() on the all_visits object
map(all_visits, ~ ___(.x, is_more_than_hundred))
# Use the day vector to set names to all_list
day <- c("mon", "tue", "wed", "thu", "fri", "sat", "sun")
full_visits_named <- map(all_visits, ~ ___(.x, ___))
# Use this mapper with keep()
map(full_visits_named, ~ ___(.x, ___))