Împărțirea setului de date
Într-un exercițiu anterior, ai determinat că media numărului de retweet-uri per tweet este 3,3. În acest exercițiu, vom analiza câte tweet-uri se află peste această medie și câte sunt sub ea.
Pentru aceasta, vom crea mai întâi un mapper care testează dacă .x este mai mare decât 3.3. Vom precomplet apoi map_at(), cu .at setat pe "retweet_count", și .f setat pe mapperul creat, respectiv pe negația acestuia.
Rețineți că, de la crearea acestui curs, comportamentul purrr s-a schimbat, iar pentru a evita un conflict de argumente între .f din partial() și .f din map_at(), trebuie să folosești operatorul de quasi-citare := (cunoscut uneori și ca „operatorul walrus"). În scopul acestui exercițiu, tot ce trebuie să știi este că := funcționează ca =, dar îi semnalează lui partial() că argumentul trebuie transmis către map_at(), nu reținut pentru sine.
Odată create aceste instrumente, le vom aplica pe obiectul non_rt, care reprezintă o extragere a „tweet-urilor originale" din setul de date rstudioconf.
purrr a fost deja încărcat pentru tine.
Acest exercițiu face parte din cursul
Programare funcțională intermediară cu purrr
Instrucțiuni pentru exercițiu
Creează
mean_above, un mapper care testează dacă.xeste mai mare decât3.3.Precompletează două versiuni ale funcției
map_at(): una cu"retweet_count"șimean_above, iar cealaltă cu"retweet_count"și negația luimean_above.Aplică aceste două funcții precompletate pe
non_rtși păstrează doar elementele"retweet_count".Calculează dimensiunea celor două rezultate.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)