Začněte nyníZačněte zdarma

Rozdělení datasetu

V předchozím cvičení jsi zjistil/a, že průměrný počet retweetů na tweet je 3,3. V tomto cvičení se podíváme na to, kolik tweetů je nad tímto průměrem a kolik pod ním.

Nejprve vytvoříme mapper, který testuje, zda je .x větší než 3.3. Pak předvyplníme map_at() tak, aby .at bylo "retweet_count" a .f byl nejdříve námi vytvořený mapper a podruhé jeho negace.

Poznámka: od doby, kdy byl tento kurz vytvořen, se chování purrr změnilo. Aby nedocházelo ke konfliktu argumentů mezi .f v partial() a .f v map_at(), je nutné použít operátor quasi-quotation := (někdy označovaný jako „walrus operator"). Pro účely tohoto cvičení stačí vědět, že := funguje stejně jako =, ale dává partial() najevo, že argument má být předán do map_at(), nikoli ponechán pro něj samotné.

Jakmile budou tyto nástroje připraveny, použijeme je na objektu non_rt, což je výběr „původních tweetů" z datasetu rstudioconf.

purrr je již načtený.

Toto cvičení je součástí kurzu

Intermediate Functional Programming with purrr

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř mean_above — mapper, který testuje, zda je .x větší než 3.3.

  • Předvyplň dvě verze map_at(): jednu s "retweet_count" a mean_above, druhou s "retweet_count" a negací mean_above.

  • Aplikuj tyto dvě předvyplněné funkce na non_rt a ponech pouze prvky "retweet_count".

  • Zjisti velikost obou výsledků.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód