シード値とは、乱数を生成するときに最初に設定する値のことです。乱数を生成するときに、このシード値を設定しておくと、再現性のある乱数を得ることができます。
Rで乱数を生成する方法
例えば、Rで正規分布に従う乱数を生成する場合、
rnorm(n, mean = 0, sd = 1)
のように入力します。しかし、これだけだと以下のように、このコードを実行するたびに作られる乱数が変わります。
> rnorm(10, mean = 0, sd = 1)
[1] 1.0447744 0.3018403 -1.3154869 -0.6667864 0.6683990 0.2998708 0.4079035 -0.1672800 0.9068629
[10] -0.7918778
> rnorm(10, mean = 0, sd = 1)
[1] 0.5481642 -0.9083905 0.2204785 1.0816230 0.8733535 -1.8600726 -0.0421499 0.3310948 1.3499128
[10] 1.4393975
シード値を設定して乱数を生成する
シード値を設定して乱数を生成することにより、毎回同じ値が得られるようになります。
シード値は、set.seed()
を使って指定でき、()の中には任意の数値を記入します。
> set.seed(1234) #シード値を設定
> rnorm(10, mean = 0, sd = 1)
[1] -1.2070657 0.2774292 1.0844412 -2.3456977 0.4291247 0.5060559 -0.5747400 -0.5466319 -0.5644520
[10] -0.8900378
> rnorm(10, mean = 0, sd = 1)
[1] -0.47719270 -0.99838644 -0.77625389 0.06445882 0.95949406 -0.11028549 -0.51100951 -0.91119542
[9] -0.83717168 2.41583518
> set.seed(1234) #シード値を設定
> rnorm(10, mean = 0, sd = 1)
[1] -1.2070657 0.2774292 1.0844412 -2.3456977 0.4291247 0.5060559 -0.5747400 -0.5466319 -0.5644520
[10] -0.8900378
> rnorm(10, mean = 0, sd = 1)
[1] -0.47719270 -0.99838644 -0.77625389 0.06445882 0.95949406 -0.11028549 -0.51100951 -0.91119542
[9] -0.83717168 2.41583518
>