Scinder le jeu 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 cela, nous allons d’abord créer un mapper qui teste si .x est supérieur à 3.3. Nous allons ensuite préremplir map_at(), avec .at égal à "retweet_count", et .f d’abord égal au mapper que nous venons de créer, puis, dans un second temps, à la négation de ce mapper.
Notez que depuis la création de ce cours, le comportement de purrr a changé et, afin d’éviter un conflit d’arguments entre .f dans partial() et .f dans map_at(), vous devez utiliser l’opérateur d’égalité de quasi-quotation, := (parfois appelé « opérateur morse »). Pour cet exercice, tout ce que vous devez savoir est que := fonctionne comme =, mais indique à partial() que l’argument doit être passé à map_at() plutôt que conservé pour lui-même.
Une fois ces outils créés, nous les utiliserons sur l’objet non_rt, qui correspond à l’extraction des « tweets originaux » du jeu de données rstudioconf.
purrr a été chargé pour vous.
Cet exercice fait partie du cours
<cours>Programmation fonctionnelle intermédiaire avec purrr</cours>Instructions de l’exercice
Créez
mean_above, un mapper qui teste si.xest supérieur à3.3.Préremplissez deux versions de
map_at(): l’une avec"retweet_count"etmean_above, l’autre avec"retweet_count"et la négation demean_above.Appliquez ces deux fonctions préremplies à
non_rt, et ne conservez 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)