2013-01-17 16 views
7

के साथ set.seed। मेरी समझ यह है कि set.seed का उपयोग पुनरुत्पादन सुनिश्चित करता है लेकिन R 2.15.2 में निम्न आर कोड के साथ यह मामला नहीं है। क्या मुझसे कोई चूक हो रही है?आर 2.15.2

set.seed(12345) 
rnorm(5) 
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875 
rnorm(5) 
[1] -1.8179560 0.6300986 -0.2761841 -0.2841597 -0.9193220 

उत्तर

19

set.seed()random number generator reinitializes।

set.seed(12345) 
rnorm(5) 
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875 

set.seed(12345) 
rnorm(5) 
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875 

set.seed(12345) 
rnorm(5) 
[1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875 
12

किसी भी कॉल यादृच्छिक संख्या जनरेटर का उपयोग करता है वर्तमान बीज बदल जाएगा, तो आप मैन्युअल set.seed साथ यह निर्धारित किया है, भले ही।

set.seed(1) 
x <- .Random.seed # get the current seed 
runif(10) # uses random number generator, so changes current seed 
y <- .Random.seed 
identical(x, y) # FALSE 

@StephanKolassa चलता है, आप यादृच्छिक संख्या जनरेटर के प्रत्येक उपयोग करने से पहले बीज रीसेट करने के लिए गारंटी नहीं है कि यह एक ही एक-एक समय का उपयोग करता होगा।