Kom igångKom igång gratis

Dela upp datamängden

I en tidigare övning konstaterade du att det genomsnittliga antalet retweets per tweet är 3,3. I den här övningen undersöker vi hur många tweets som ligger över detta medelvärde och hur många som ligger under.

För att göra det skapar vi först en mapper som testar om .x är större än 3.3. Sedan förfyller vi map_at() med .at satt till "retweet_count", och .f satt till dels den mapper vi skapat, dels negationen av den.

Observera att sedan den här kursen skapades har purrr:s beteende förändrats. För att undvika en argumentkonflikt mellan .f i partial() och .f i map_at() måste du använda quasi-citation-operatorn := (ibland kallad "walrus-operatorn"). I den här övningen räcker det att veta att := fungerar som =, men signalerar till partial() att argumentet ska skickas vidare till map_at() i stället för att behållas internt.

När verktygen är på plats använder vi dem på objektet non_rt, som är ett utdrag av de "ursprungliga tweetsen" från datamängden rstudioconf.

purrr är redan inläst.

Den här övningen är en del av kursen

Funktionell programmering på mellannivå med purrr

Visa kurs

Övningsinstruktioner

  • Skapa mean_above, en mapper som testar om .x är större än 3.3.

  • Förfyll två versioner av map_at(): en med "retweet_count" och mean_above, och en med "retweet_count" och negationen av mean_above.

  • Applicera de två förfyllda funktionerna på non_rt och behåll bara elementen "retweet_count".

  • Hämta storleken på de två resultaten.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod