1. ホーム
  2. r

[解決済み】set.seed関数を使用する理由

2022-04-12 03:34:48

質問

を何度も見てきました。 set.seed という関数は、プログラムを開始する前に、Rで 基本的に乱数生成に使われることは知っています。特に設定する必要があるのでしょうか?

どのように解決するのですか?

その必要性とは、例えばプログラムのデバッグや、もちろんそのプログラムが行うことをやり直そうとしたときに生じる、再現性のある結果に対する欲求です。

この2つの結果は、私が「ランダムなもの」を求めただけなので、決して再現されることはないでしょう。

R> sample(LETTERS, 5)
[1] "K" "N" "R" "Z" "G"
R> sample(LETTERS, 5)
[1] "L" "P" "J" "E" "D"

ただし、この2つは同一です 私が種を蒔いたから :

R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R> set.seed(42); sample(LETTERS, 5)
[1] "X" "Z" "G" "T" "O"
R> 

それについては膨大な文献があり、Wikipediaが良いきっかけとなるでしょう。このようなRNGは疑似乱数生成器と呼ばれ、その実態は 完全アルゴリズミック 同じ種を与えれば、同じ配列になる。 そして、その は、機能 であり、バグではありません。