EmpezarEmpieza gratis

Sepárate con keep() y discard()

Queremos dividir nuestros resultados en dos grupos: los días por encima de 100 y los días por debajo de 100. Para ello, combinaremos keep() y discard().

¿Por qué dos funciones? ¿No podríamos usar solo una? ¿No podríamos crear un mapper llamado is_less_than_hundred?

Podríamos, pero sería más propenso a errores: es más fácil cambiar de keep() a discard() que copiar y pegar. Al combinarlas, solo necesitamos un mapper. Eso significa que, si queremos cambiar el umbral, solo tendremos que hacerlo una vez, no dos, como ocurriría si tuviéramos dos mappers.

Esta es una regla que deberías procurar aplicar al programar: escribe el código de forma que, si necesitas cambiar algo, tengas que cambiarlo una sola vez.

all_visits sigue disponible en tu espacio de trabajo.

Este ejercicio forma parte del curso

Programación funcional intermedia con purrr

Ver curso

Instrucciones del ejercicio

  • Aplica la función set_names() a all_visits para añadir el nombre de los días: all_visits_named.
  • Crea un mapper llamado threshold que compruebe si .x está por encima de 100.
  • Crea group_over conservando los elementos que estén por encima de 100.
  • Crea group_under descartando los elementos que estén por encima de 100.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Set the name of each subvector
day <- c("mon", "tue", "wed", "thu", "fri", "sat", "sun")
all_visits_named <- ___(all_visits, ~ ___(.x, ___))

# Create a mapper that will test if .x is over 100 
threshold <- ___

# Run this mapper on the all_visits_named object: group_over
group_over <- ___(all_visits_named, ~ ___(.x, ___))

# Run this mapper on the all_visits_named object: group_under
group_under <-  ___(all_visits_named, ~ ___(.x, ___))
Editar y ejecutar código