CommencerCommencez 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 chacun sept nombres, un par jour de la semaine.

La première question que nous voulons poser est : quels jours ont dépassé 100 visites par heure en moyenne ? Nous allons utiliser la fonction keep(). Mais la réponse ne serait pas 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ésoudre ce problème. C’est ce que nous allons faire dans ce chapitre : d’abord, utiliser keep() sur des vecteurs non nommés, puis sur des vecteurs nommés.

Cet exercice fait partie du cours

<cours>Programmation fonctionnelle intermédiaire avec purrr</cours>
Voir le cours

Instructions de l’exercice

  • Créez un mapper qui teste si .x est supérieur à 100. Vous l’utiliserez deux fois.
  • Combinez ce mapper 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 ont été conservés.
  • Nommez chaque vecteur en combinant map() et set_names(), à l’aide du vecteur de noms fourni.
  • Appliquez le mapper précédemment créé à la nouvelle liste nommée. Comme vous pouvez le voir, c’est maintenant plus lisible !

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