1. 学ぶ
  2. /
  3. コース
  4. /
  5. purrr で学ぶ関数型プログラミング入門

Connected

演習

pmap() で3つ以上の入力を使ってデータをシミュレーションする

3つのリストを反復処理したい場合はどうすればよいでしょうか? map3() はあるのでしょうか? 2つを超えるリスト(3つ、4つ、あるいは20でも)を反復処理するには、pmap() を使います。ただし、pmap() ではリストの引数の渡し方が少し異なります。

pmap() を使うには、まず反復処理したいすべてのリストを含む「マスターリスト」を作成します。マスターリストが pmap() の入力になります。.x や .y の代わりに、リスト名をそのまま引数名として使います。

ここでは、2つではなく5つのリストを入力として使い、もう一度データをシミュレーションします。pmap() を使うとシミュレートするデータセットを完全にコントロールでき、異なるサイトに加えて、2つの異なる平均と2つの異なる標準偏差を利用できます。

指示

100 XP
  • sites、means、means2、sigma、sigma2 の各リストを含む名前付きリストを作成します。
  • そのリストのリストに対して pmap() を実行し、3列のデータフレームのリストを作成します。最初の列は sites です。
    • 2列目は a で、mean = means、sd = sigma を指定した rnorm() の結果です。
    • 3列目は b で、mean = means2、sd = sigma2 を指定した rnorm() の結果です。