如何使用R创建向量(10 ^ 16 + 1,10 ^ 16 + 2,...,10 ^ 16 + 1000)?

时间:2018-11-10 16:03:47

标签: r precision mantissa

我想创建以下向量(10 ^ 16 + 1,10 ^ 16 + 2,...,10 ^ 16 + 1000)。 但是,如果我这样尝试:

daten <- rep(1e+16,1000)
daten + 1:1000

这只是一个近似值:

[1] 10000000000000000 10000000000000002 10000000000000004 10000000000000004
[5] 10000000000000004 10000000000000006 10000000000000008 10000000000000008
[9] 10000000000000008 10000000000000010 10000000000000012 10000000000000012
[13] 10000000000000012 10000000000000014 10000000000000016 10000000000000016 
 ......

如何获取R以进行更精确的计算? 谢谢

1 个答案:

答案 0 :(得分:1)

Rmpfr软件包可为您提供所需的精度。使用mpfr函数创建数字,指定值+您需要的精度位数。

library(Rmpfr)
daten <- mpfr(1:1000, 120)
daten <- daten + mpfr(1e16, 120)
print(daten[1:5])

这将产生以下内容:

5 'mpfr' numbers of precision  120   bits 
[1] 10000000000000001 10000000000000002 10000000000000003 10000000000000004 10000000000000005