R で map() 関数を使用する方法 (例付き)
R のpurrrパッケージのmap()関数を使用すると、ベクトルまたはリストの各要素に関数を適用し、それに応じてリストを返すことができます。
この関数は次の基本構文を使用します。
マップ(.x, .f)
金:
- .x : ベクトルまたはリスト
- .f : 関数
次の例は、さまざまなシナリオでこの関数を使用する方法を示しています。
例 1: map() を使用して確率変数を生成する
次のコードは、 map()関数を使用して、標準正規分布に従う 5 つの値をそれぞれ含む 3 つの確率変数を生成する方法を示しています。
library (purrr)
#definevector
data <- 1:3
#apply rnorm() function to each value in vector
data %>%
map( function (x) rnorm(5, x))
[[1]]
[1] 0.0556774 1.8053082 2.6489861 2.2640136 1.1062672
[[2]]
[1] 1.450175 1.123048 3.413677 3.055304 2.713801
[[3]]
[1] 2.936732 2.157129 3.693738 2.994391 2.567040
元のベクトルの各要素に対して、 map()関数は rnorm() 関数を適用して、 標準正規分布から 5 つのランダムな値を生成しました。
例 2: map() を使用して各値をベクトルに変換する
次のコードは、 map()関数を使用してベクトル内の各値の 2 乗を計算する方法を示しています。
library (purrr)
#definevector
data <- c(2, 4, 10, 15, 20)
#calculate square of each value in the vector
data %>%
map( function (x) x^2)
[[1]]
[1] 4
[[2]]
[1] 16
[[3]]
[1] 100
[[4]]
[1] 225
[[5]]
[1] 400
元のベクトルの各要素に対して、 map()関数は各値の 2 乗を計算する関数を適用しました。
例 3: map() を使用して、リスト内の各ベクトルの平均を計算します。
次のコードは、 map()関数を使用してリスト内の各ベクトルの平均値を計算する方法を示しています。
library (purrr)
#define list of vectors
data <- list(c(1, 2, 3),
c(4, 5, 6),
c(7, 8, NA))
#calculate mean value of each vector in list
data %>%
map(mean, na. rm = TRUE )
[[1]]
[1] 2
[[2]]
[1] 5
[[3]]
[1] 7.5
リスト内の各ベクトルについて、 map()関数は平均値を計算します。
結果から次のことがわかります。
- リストの最初のベクトルの平均値は2です。
- リストの 2 番目のベクトルの平均値は5です。
- リストの 3 番目のベクトルの平均値は7.5です。
注: 引数na.rm=TRUEは、平均を計算するときに NA 値を無視するように R に指示します。
追加リソース
次のチュートリアルでは、R の他の一般的な関数の使用方法について説明します。
Rでtapply()関数を使用する方法
R で dim() 関数を使用する方法
Rでtable()関数を使用する方法
Rでsign()関数を使用する方法