R語言筆記-set.seed()函數


今天查了一下R語言中set.seed(),該命令的作用是設定生成隨機數的種子,種子是為了讓結果具有重復性。如果不設定種子,生成的隨機數無法重現。

set.seed()用於設定隨機數種子,一個特定的種子可以產生一個特定的偽隨機序列,這個函數的主要目的,是讓你的模擬能夠可重復出現,因為很多時候我們需要取隨機數,但這段代碼再跑一次的時候,結果就不一樣了,如果需要重復出現同樣的模擬結果的話,就可以用set.seed()。在調試程序或者做展示的時候,結果的可重復性是很重要的,所以隨機數種子也就很有必要。 
也可以簡單地理解為括號里的數只是一個編號而已,例如set.seed(100)不應將括號里的數字理解成“一百”,而是應該理解成“編號為一零零的隨機數發生”,下一次再模擬可以采用二零零(200)或者一一一(111)等不同的編號即可,編號設定基本可以隨意。 
例如以下實驗:

> x<-rnorm(10) #隨機生成10個隨機數 > x [1] 0.3897943 -1.2080762 -0.3636760 -1.6266727 -0.2564784 1.1017795 0.7557815 [8] -0.2382336 0.9874447 0.7413901 > x<-rnorm(10) #再次隨機生成10個隨機數 > x [1] 0.08934727 -0.95494386 -0.19515038 0.92552126 0.48297852 -0.59631064 -2.18528684 [8] -0.67486594 -2.11906119 -1.26519802 > set.seed(5) #設定種子 > x<-rnorm(10) # 在設定種子的前提下生成10個隨機數 > x [1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639 [8] -0.63537131 -0.28577363 0.13810822 > set.seed(5) # 設定種子 > y<-rnorm(10) > y [1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639 [8] -0.63537131 -0.28577363 0.13810822 > x == y [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

內容轉載自 http://blog.sina.com.cn/s/blog_5de124240101pwm3.html

關於該函數補充如下: set.seed( ) 括號的數只是一個編號,作為標記使用,取值可以隨意;當以后需要取得與上次相同的隨機數時, set.seed( ) 中填寫回該值即可。

例如 set.seed(100) 不應將括號里的數字理解成“一百”,而是應該理解成“編號為一零零的隨機數發生”, 下一次再模擬可以采用二零零(200)或者(111)等不同的編號都行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM