Package?base?version 4.2.0
Description
.Random.seed是一個整數(shù)向量,包含R中生成隨機數(shù)的隨機數(shù)生成器(RNG)狀態(tài)。它可以保存和恢復,但不應該被用戶更改。
RNGkind是一個更友好的接口,用于查詢或設置正在使用的RNG類型。
RNGversion在早期的R版本中可以用來設置隨機生成器(為了再現(xiàn)性)。
set.seed 是設置隨機數(shù)種子的推薦方法。
Usage
.Random.seed <- c(rng.kind, n1, n2, ...)
RNGkind(kind = NULL, normal.kind = NULL, sample.kind = NULL)
RNGversion(vstr)
set.seed(seed, kind = NULL, normal.kind = NULL, sample.kind = NULL)
Arguments
參數(shù)【kind】:字符或NULL。如果kind是字符串,則將R的RNG設置為所需的類型。使用"default"返回R默認值。有關NULL的解釋,請參閱“詳細信息”。
參數(shù)【normal.kind】:字符串或NULL。如果是字符串,則設置為常見的構造器方式。使用"default"返回R默認值。NULL不做任何改變。
參數(shù)【sample.kind】:字符串或NULL。如果是字符串,則設置離散均勻生成方法(例如在sample中使用)。使用"default"返回R默認值。NULL不做任何改變。
參數(shù)【seed】:單個值,解釋為整數(shù)或NULL(參見“詳細信息”)。
參數(shù)【vstr】:包含版本號的字符串,例如“1.6.2”。如果vstr大于當前版本,則使用當前R版本的默認RNG配置。
參數(shù)【rng.kind】:上面kind的整數(shù)碼為0:k。
參數(shù)【n1,n2,...】:整數(shù)。請參閱所需數(shù)量的詳細信息(這取決于ring .kind)。
Details
目前可用的RNG種類如下。Kind部分匹配此列表。默認是“Mersenne-Twister”。
- "Wichmann-Hill"
- "Marsaglia-Multicarry"
- "Super-Duper"
- "Mersenne-Twister"
- "Knuth-TAOCP-2002"
- "Knuth-TAOCP"
- "L'Ecuyer-CMRG"
- "user-supplied"
normal.kind可為“Kinderman-Ramage”、“Buggy Kinderman-Ramage”(不適用set.seed)、“Ahrens-Dieter”、“Box-Muller”、“Inversion”(默認)或“user-supplied”。在1.7.0之前的版本中使用的Kinderman-Ramage生成器(現(xiàn)在稱為“Buggy”)有幾個近似錯誤,應該只用于復制舊結果。
“Box-Muller”生成器是有狀態(tài)的,因為法線對是依次生成和返回的。當它被選中時(即使它是當前的普通生成器),當類型被改變時,狀態(tài)將被重置。
sample.kind可以是“Rounding”或“Rejection”,或部分匹配這些。前者在3.6.0之前的版本中是默認的:它使樣本在大種群中明顯不均勻,并且應該只用于復制舊的結果。
set.seed使用單個整數(shù)參數(shù)來設置所需的任意數(shù)量的種子。它的目的是作為一種簡單的方法,通過指定小的整數(shù)參數(shù)來獲得完全不同的種子,也是一種為更復雜的方法(特別是“Mersenne-Twister”和“Knuth-TAOCP”)獲得有效種子集的方法。我們不能保證不同的seed值會以不同的方式生成RNG,盡管任何例外情況都是非常罕見的。如果使用seed = NULL調用,它會重新初始化(參見' Note '),就好像沒有設置種子一樣。
使用kind = NULL,normal.kind = NULL或在RNGkind或set.seed中,sample.kind = NULL選擇當前使用的生成器(如果工作空間已經(jīng)恢復,包括在前一個會話中使用的生成器):如果沒有使用生成器,它選擇“default”。
Value
.Random.seed是一個整數(shù)向量,其第一個元素編碼RNG和normal生成器的類型。最小的兩位十進制數(shù)字為0 (k-1),其中k為可用rng數(shù)。百位代表普通發(fā)生器的類型(從0開始),萬位代表離散均勻采樣器的類型。
在底層的C中,.Random.seed[-1]是無符號的;因此在R .Random.seed[-1]可以是負數(shù),因為用有符號整數(shù)表示無符號整數(shù)。
RNGkind返回在調用之前選擇的RNG,正常和樣本類型的三元素字符向量,如果參數(shù)不為NULL,則不可見。一個類型作為默認值啟動會話,并通過調用RNGkind或通過設置. random來選擇。在工作空間中播種。(注意:在r3.6.0之前,前兩種類型以雙元素字符向量的形式返回。)
RNGversion返回與RNGkind相同的關于特定R版本默認值的信息。
set.seed返回NULL,不可見。
Note
最初,沒有種子;當需要時,將根據(jù)當前時間和進程ID創(chuàng)建一個新的。因此,默認情況下,不同的會話將給出不同的模擬結果。但是,如果恢復以前保存的工作空間,則可能會從以前的會話恢復種子。
.Random.seed保存用于均勻隨機數(shù)生成器的種子集,至少用于系統(tǒng)生成器。它并不一定保存其他生成器的狀態(tài),特別是不保存Box-Muller正常生成器的狀態(tài)。如果稍后要重現(xiàn)工作,請調用set.seed(最好為kind和normal.kind設置明確的值),而不是設置 . Random.seed。
.Random.seed對象只在用戶的工作空間中查找。文章來源:http://www.zghlxwxcb.cn/news/detail-836887.html
不要依賴rng低階位的隨機性。大多數(shù)提供的統(tǒng)一生成器返回32位整數(shù)值,這些值被轉換為雙精度,因此它們最多取一個2的32次方個不同的值和長時間運行將返回重復的值(wichman - hill是例外,它們都給出至少30個不同的位)。文章來源地址http://www.zghlxwxcb.cn/news/detail-836887.html
到了這里,關于R語言【base】——.Random.seed(),RNGkind(),RNGversion(),set.seed():隨機數(shù)生成器的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!