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
Instructions de l’exercice
- Créez un mappeur qui testera si
.xest supérieur à 100. Vous l'utiliserez deux fois. - Combinez ce mappeur avec
keep()et appliquez-le à la liste non nomméeall_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 fonctionset_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, ___))