開始使用免費開始

切分資料集

在前一個練習中,你已經算出每則推文的平均轉推數是 3.3。這個練習要看看有多少推文高於這個平均值,以及有多少低於。

為此,我們會先建立一個 mapper,用來測試 .x 是否大於 3.3。接著預先填入 map_at() 的參數,其中 .at"retweet_count".f 先放你剛建立的 mapper,然後再放這個 mapper 的否定。

※ 注意:自從本課程建立後,purrr 的行為已有變更。為了避免 partial() 中的 .fmap_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)
編輯並執行程式碼