gpt4 book ai didi

r - `rbinom()` 中可能存在大量试验的错误

转载 作者:行者123 更新时间:2023-12-04 17:48:06 26 4
gpt4 key购买 nike

我一直在编写一些迭代执行二项式绘制的代码(使用 rbinom ),对于一些被调用方参数,我最终可能会得到很大的大小,这会导致 R(3.1.1,官方或自制版本都经过测试 - 不太可能与编译器相关)返回意外 NA .例如:

rbinom(1,2^32,0.95)

是我期望的工作,但给 NA背部。但是,运行 size=2^31prob≤0.5作品。

精细手册提到了当 size < .Machine$integer.max 时使用的反转。是假的,这可能是问题吗?

最佳答案

看着 the source rbinom对于如此大的尺寸,执行以下等效(在 C 代码中):

qbinom(runif(n), size, prob, FALSE)

确实:
set.seed(42)
rbinom(1,2^31,0.95)
#[1] 2040095619
set.seed(42)
qbinom(runif(1), 2^31, 0.95, F)
#[1] 2040095619

然而:
set.seed(42)
rbinom(1,2^32,0.95)
#[1] NA
set.seed(42)
qbinom(runif(1), 2^32, 0.95, F)
#[1] 4080199349

正如@BenBolker 指出的那样 rbinom返回一个整数,如果返回值大于 .Machine$integer.max ,例如,大于 2147483647在我的机器上, NA被退回。相比之下 qbinom返回一个双倍。我不知道为什么,而且似乎没有记录。

因此,似乎至少存在未记录的行为,您可能应该报告它。

关于r - `rbinom()` 中可能存在大量试验的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26241135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com