CommencezCommencez gratuitement

Nettoyez vos données avec keep

Depuis le début de ce cours, nous utilisons les résultats d'un test A/B d'une semaine.

Nous avons placé ces résultats dans une liste appelée all_visits. Cette liste contient visit_a, visit_b et visit_c. Ces vecteurs ne sont pas nommés. Ils contiennent tous sept nombres, un pour chaque jour de la semaine.

La première question à se poser est : quels jours ont atteint en moyenne plus de 100 visites par heure ? Nous allons utiliser la fonction keep(). Mais la réponse ne serait pas très lisible avec un vecteur non nommé : vous auriez les nombres, sans savoir à quel jour ils correspondent.

La bonne nouvelle : vous pouvez utiliser la fonction set_names() pour régler ce problème. C'est ce que nous ferons dans ce chapitre : d'abord, utiliser keep() sur des vecteurs non nommés, puis sur des vecteurs nommés.

Cette activité fait partie du cours

Programmation fonctionnelle intermédiaire avec purrr

Voir le cours

Instructions de l’exercice

  • Créez un mappeur qui testera si .x est supérieur à 100. Vous l'utiliserez deux fois.
  • Combinez ce mappeur avec keep() et appliquez-le à la liste non nommée all_visit. Comme le résultat est non nommé, vous ne savez pas quels jours vous avez gardés.
  • Nommez chaque vecteur en combinant map() et la fonction set_names(), en utilisant le vecteur de noms que nous vous avons fourni.
  • Appliquez le mappeur créé précédemment à la liste nouvellement nommée. Comme vous pouvez le constater, c'est beaucoup plus lisible maintenant !

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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, ___))
Modifier et exécuter le code