切分資料集
在前一個練習中,你已經算出每則推文的平均轉推數是 3.3。這個練習要看看有多少推文高於這個平均值,以及有多少低於。
為此,我們會先建立一個 mapper,用來測試 .x 是否大於 3.3。接著預先填入 map_at() 的參數,其中 .at 為 "retweet_count",.f 先放你剛建立的 mapper,然後再放這個 mapper 的否定。
※ 注意:自從本課程建立後,purrr 的行為已有變更。為了避免 partial() 中的 .f 與 map_at() 中的 .f 發生參數衝突,你必須使用類引用的等號運算子 :=(有時稱為「海象運算子」)。在本練習中,你只需要知道 := 的作用就像 =,但會讓 partial() 知道該參數應該傳遞給 map_at(),而不是保留在 partial() 自己這一側。
準備好這些工具後,將它們用在 non_rt 物件上。這個物件是從 rstudioconf 資料集中擷取的「原始推文」。
purrr 已為你載入。
本練習屬於課程
使用 purrr 的 R 語言中級函式程式設計
練習說明
建立
mean_above,一個用來測試.x是否大於3.3的 mapper。預先填好兩個版本的
map_at():一個搭配"retweet_count"與mean_above,另一個搭配"retweet_count"與mean_above的否定。將這兩個預先填好的函式對
non_rt進行對應(map),並且只保留"retweet_count"元素。取得兩個結果的大小。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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)