Scinder l'ensemble de données
Dans un exercice précédent, vous avez déterminé que le nombre moyen de retweets par tweet est de 3,3. Dans cet exercice, nous allons regarder combien de tweets sont au-dessus de cette moyenne et combien sont en dessous.
Pour ce faire, nous allons d'abord créer un mappeur qui teste si .x est supérieur à 3.3. Nous allons ensuite préremplir map_at(), avec .at égal à "retweet_count", et .f étant d'abord le mappeur que nous venons de créer, puis la négation de ce mappeur.
À noter que depuis la création de ce cours, le comportement de purrr a changé. Pour éviter un conflit d'arguments entre .f dans partial() et .f dans map_at(), vous devez utiliser l'opérateur d'assignation par quasi-quotation, := (parfois appelé « walrus operator »). Pour les besoins de cet exercice, tout ce que vous devez savoir, c'est que := fonctionne comme =, mais indique à partial() que l'argument doit être transmis à map_at() plutôt que d'être conservé par partial().
Une fois ces outils créés, nous les utiliserons sur l'objet non_rt, qui est un extrait des « tweets originaux » du jeu de données rstudioconf.
purrr a été chargé pour vous.
Cette activité fait partie du cours
Programmation fonctionnelle intermédiaire avec purrr
Instructions de l’exercice
Créez
mean_above, un mappeur qui teste si.xest supérieur à3.3.Préremplissez deux versions de
map_at(): l'une avec"retweet_count"etmean_above, et l'autre avec"retweet_count"et la négation demean_above.Appliquez ces deux fonctions préremplies à
non_rt, et ne gardez que les éléments"retweet_count".Obtenez la taille des deux résultats.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create mean_above, a mapper that tests if .x is over 3.3
mean_above <- ___(~ ___)
# Prefil map_at() with "retweet_count", mean_above for above,
# and mean_above negation for below
above <- partial(___, .at = "retweet_count", .f := ___ )
below <- partial(___, .at = "retweet_count", .f := ___ )
# Map above() and below() on non_rt, keep the "retweet_count"
ab <- ___(non_rt, ___) %>% ___("retweet_count")
bl <- ___(non_rt, ___) %>% ___("retweet_count")
# Compare the size of both elements
___(ab)
___(bl)