在R中生成一个20位数字

时间:2013-09-20 18:37:12

标签: r random

我想使用R生成一个随机的20位数字。

我的第一次尝试是

runif(1,10000000000000000000,9999999999999999999)

但这似乎不起作用,因为R将9999999999999999999四舍五入为10000000000000000000.在我下降到15位之前,它似乎不接受“9999”数字:

> 9999999999999999999
[1] 10000000000000000000
> 999999999999999999
[1] 1000000000000000000
> 99999999999999999
[1] 100000000000000000
> 9999999999999999
[1] 10000000000000000
> 999999999999999
[1]  999999999999999
> 99999999999999
[1]  99999999999999
> 9999999999999
[1]  9999999999999

有没有更好的方法来解决这个问题?

2 个答案:

答案 0 :(得分:8)

您可以将此数字生成为字符串:

paste( sample( 0:9, 20, replace=TRUE ), collapse="" )
# [1] "40910135645767200675"

答案 1 :(得分:1)

set.seed(1)
sprintf("%20.0f",runif(1,1e19,1e20))
#[1] "33895779682788999168"