隨機數發生器的再現性
當期望有人重現其中包含隨機元素的 R 程式碼時,set.seed()
函式變得非常方便。例如,這兩行將始終產生不同的輸出(因為這是隨機數生成器的整點):
> sample(1:10,5)
[1] 6 9 2 7 10
> sample(1:10,5)
[1] 7 6 1 2 10
這兩個也將產生不同的輸出:
> rnorm(5)
[1] 0.4874291 0.7383247 0.5757814 -0.3053884 1.5117812
> rnorm(5)
[1] 0.38984324 -0.62124058 -2.21469989 1.12493092 -0.04493361
但是,如果我們在兩種情況下將種子設定為相同的(大多數人為簡單起見使用 1),我們會得到兩個相同的樣本:
> set.seed(1)
> sample(letters,2)
[1] "g" "j"
> set.seed(1)
> sample(letters,2)
[1] "g" "j"
與 rexp()
繪製相同:
> set.seed(1)
> rexp(5)
[1] 0.7551818 1.1816428 0.1457067 0.1397953 0.4360686
> set.seed(1)
> rexp(5)
[1] 0.7551818 1.1816428 0.1457067 0.1397953 0.4360686