我正在尝试使用rmultinom
中的R
函数来分配大群体值,并且我遇到了整数溢出问题。
例如,以下内容给出了我的错误:
rmultinom(1, 7000000000, prob = c(0.4,0.6))
Error in rmultinom(1, 7000000000, prob = c(0.4, 0.6)) :
invalid second argument 'size'
In addition: Warning message:
In rmultinom(1, 7000000000, prob = c(0.4, 0.6)) :
NAs introduced by coercion to integer range
我知道这是因为我使用的是一个大于.Machine$integer.max= 2147483647
的整数,但有没有人知道解决方法而不会丢失计数的精确度?
答案 0 :(得分:3)
好吧,如果你可以分开它,那么它就可以了。我们可以用100万次测量来完成这项工作
chunksize <- 1000000
chunks <- 7000000000 / chunksize
rowSums(rmultinom(chunks, chunksize, prob=c(.4, .6)))