始める無料で始める

map2() を使って複数入力でデータをシミュレーションする

map() は「1つ」のリストを反復処理するのに便利ですが、実務では2つのリストを同時に回す必要がよくあります。そこで活躍するのが map2() です。map() はリストを .x 引数に取りますが、map2() は2つのリストを .x.y の2つの引数として受け取ります。

map2() を試すために、数値のリストと文字列のリストからなるシンプルなデータセットを作成します。これら2つのリストを組み合わせて、シミュレートデータを作りましょう。

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

purrr で学ぶ関数型プログラミング入門

コースを見る

演習の手順

  • 1〜3 の値をそれぞれ別要素として含む means リストを作成します。
  • "north"、"west"、"east" を要素に持つ sites リストを作成します。
  • sitesmeans のリストに対して map2() を使い、2列のデータフレームを作成します。
    • 1列目は sites、2列目は means リストの mean を使って rnorm() で生成します。

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

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

# List of 1, 2 and 3
means <- list(___)

# Create sites list
sites <- list(___)

# Map over two arguments: sites and means
list_of_files_map2 <- map2(___, ___, ~___(sites = ___,
                           a = rnorm(mean = ___, n = 200, sd = (5/2))))

list_of_files_map2
コードを編集して実行