始める無料で始める

データセットを分割する

前の演習で、ツイート1件あたりのリツイート数の平均が 3.3 であることを確認しました。この演習では、この平均を上回るツイートがいくつ、下回るツイートがいくつあるかを見ていきます。

そのために、まず .x3.3 を上回るかどうかを判定するマッパーを作成します。次に、.at"retweet_count".f を最初は作成したマッパーに、次にそのマッパーの否定にして、map_at() をあらかじめ引数指定しておきます。

このコースの作成後に purrr の挙動が変更され、partial().fmap_at().f の引数が衝突しないように、準クォートのイコール演算子 :=(通称「セイウチ演算子」)を使う必要があります。本演習では、:== と同様に動作しますが、その引数を partial() 自身ではなく map_at() に渡すべきだと示すものだと理解しておけば十分です。

これらのツールを用意したら、rstudioconf データセットから「オリジナルツイート」を抽出した non_rt オブジェクトに対して適用します。

purrr はすでに読み込まれています。

この演習はコースの一部です

purrr で学ぶ中級関数型プログラミング

コースを見る

演習の手順

  • .x3.3 を上回るかどうかを判定するマッパー mean_above を作成してください。

  • map_at() の事前指定を2種類用意してください。1つは "retweet_count"mean_above、もう1つは "retweet_count"mean_above の否定です。

  • これら2つの事前指定済み関数を non_rt にマップし、"retweet_count" の要素だけを残してください。

  • 2つの結果の大きさを取得してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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)
コードを編集して実行