EmpezarEmpieza gratis

Limpia tus datos con keep

Desde el inicio de este curso hemos estado usando los resultados de una prueba A/B de una semana.

Hemos guardado estos resultados en una lista llamada all_visits. Esta lista contiene visit_a, visit_b y visit_c. Estos vectores no tienen nombre. Todos contienen siete números, uno por cada día de la semana.

La primera pregunta que queremos responder es: ¿qué días alcanzaron más de 100 visitas por hora de media? Usaremos la función keep(). Pero la respuesta no sería legible con un vector sin nombres: tendrías los números, pero no sabrías a qué día corresponde cada uno.

La buena noticia es que puedes usar la función set_names() para resolverlo. Esto es lo que haremos en este capítulo: primero, usar keep() sobre vectores sin nombre y, después, sobre vectores con nombre.

Este ejercicio forma parte del curso

Programación funcional intermedia con purrr

Ver curso

Instrucciones del ejercicio

  • Crea un mapper que compruebe si .x es mayor que 100. Lo usarás dos veces.
  • Combina este mapper con keep() y aplícalo a la lista sin nombres all_visit. Como el resultado no tiene nombres, no sabrás qué días has conservado.
  • Pon nombre a cada vector combinando map() y la función set_names(), usando el vector de nombres que te hemos proporcionado.
  • Aplica el mapper que creaste previamente sobre la lista recién nombrada. ¡Como ves, ahora es mucho más legible!

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

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