如何解决R:congruRand随机生成器在set.generator中仍然可用吗?
我正在遵循有关R的法语书籍中的示例。 对于讲法语的人,这本书的标题是:“史蒂芬妮·塔菲里”的“Modélisationprédictiveet aprentissage statistique avec R”。
在第2章中的某个时刻,有必要通过set.generator()调用线性同余生成器。
似乎此生成器在set.generator()中不再可用:
library(randtoolbox)
a <- 397204094
b <- 0
m <- 2^(31)
set.generator(name="congruRand",mod=m,mult=a,incr=b,seed=123)
Error in match.arg(name) : 'arg' should be one of “WELL”,“MersenneTwister”,“default”
尽管仍在记录中: randtoolbox,似乎此生成器在我的会话中不可用。从R调用帮助(?set.generator)时,得到以下签名:
set.generator(name=c("WELL","MersenneTwister","default"),parameters=NULL,seed=NULL,...,only.dsc=FALSE)
我正在使用与文档中相同的randtoolbox版本(randtoolbox_1.30.1)。
我指出,我想使用此随机数生成器是为了使本书具有可复制性。
我在做什么错了?
解决方法
我正在回答自己的问题:
显然,可以直接调用congruRand随机生成器(而无需调用set.generator()),这不会导致错误,即:
library(randtoolbox)
setSeed(123)
a <- 397204094
b <- 0
m <- 2^(31)-1
id <- (1:1000)[which(congruRand(n = 1000,mod=m,mult=a,incr=b) < 0.66)]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。