【R語言編程】---R語言中set.seed()函數(shù)的作用

前言:在很多情況下,我們編程時(shí)經(jīng)常需要生成一組隨機(jī)的數(shù)字,然而,如果一組隨機(jī)數(shù)字可以使程序運(yùn)行成功,但是另一組卻不行的時(shí)候,我們?nèi)绾斡涗浵履苁钩绦虺晒\(yùn)行的那組數(shù)字呢?這便是set.seed()函數(shù)的作用。

舉例:
使用R語言,生成一組隨機(jī)數(shù)字:

> r1 <- rnorm(8) #生成8個(gè)隨機(jī)數(shù)字
> r1
[1] -0.67509798 -0.65516676  1.49228122  0.12893907 -1.00610101 -0.97784519 -1.04227771 -0.04797154
> r2 <- rnorm(8) #再生成一組隨機(jī)數(shù)字
> r2
[1] -0.8493402 -0.6088733  0.2030056 -0.6535025 -0.8949186 -0.5006307  0.2353578 -0.2134360

可以看出,每次生成的隨機(jī)數(shù)字是不完全相同的,如果我想得到可重復(fù)的結(jié)果,就可以用到set.seed()方法:

> set.seed(5000) #種子數(shù)可為隨意整數(shù)
> r1 <- rnorm(8)
> r1
[1] -0.1301591 -1.1406151 -2.1843771  0.7650218 -0.4735296 -0.3980398  1.0382221 -1.0565153

> set.seed(5000) #設(shè)置同樣的種子
> r2 <- rnorm(8)
> r2
[1] -0.1301591 -1.1406151 -2.1843771  0.7650218 -0.4735296 -0.3980398  1.0382221 -1.0565153

說明:
眾所周知,計(jì)算機(jī)并不能產(chǎn)生真正意義的隨機(jī)數(shù),計(jì)算機(jī)的隨機(jī)功能是使用系統(tǒng)時(shí)鐘來作為種子,如果你要模擬什么的話,每次的隨機(jī)數(shù)都是不一樣的。如果你事先設(shè)置了種子,這樣每次的隨機(jī)數(shù)都是一樣的,便于重現(xiàn)你的研究,也便于其他人檢驗(yàn)?zāi)愕姆治鼋Y(jié)果。舉例中的set.seed(5000)的含義便是而是把種子設(shè)置為5000,而不再使用系統(tǒng)時(shí)鐘。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容