为什么as.numeric函数在R中不能正常工作?

时间:2012-07-19 20:01:34

标签: r character numeric

我有这两个字符,而“as.numeric”函数对它们不起作用。任何人都可以帮助我为什么会这样吗?

  

选项(位数= 22)

     

α= “27”

     

as.numeric(a)中

[1] 27.00000000000000000000

  

α= “193381411288395777”

     

as.numeric(a)中

[1] 193381411288395776.0000

可以看出,在第二种情况下,最后一位不是“7”而是“6”。基本上,“as.numeric”函数从第二种情况下的数字减少1个单位。

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您需要了解确切数字表示的限制。 R可以告诉你它有什么:

R> .Machine
$double.eps
[1] 2.22045e-16

$double.neg.eps
[1] 1.11022e-16

$double.xmin
[1] 2.22507e-308

$double.xmax
[1] 1.79769e+308

$double.base
[1] 2

$double.digits
[1] 53

$double.rounding
[1] 5

$double.guard
[1] 0

$double.ulp.digits
[1] -52

$double.neg.ulp.digits
[1] -53

$double.exponent
[1] 11

$double.min.exp
[1] -1022

$double.max.exp
[1] 1024

$integer.max
[1] 2147483647

$sizeof.long
[1] 8

$sizeof.longlong
[1] 8

$sizeof.longdouble
[1] 16

$sizeof.pointer
[1] 8

R>

答案 1 :(得分:2)

使用int64包:

library(int64)
> as.int64("193381411288395777")
[1] 193381411288395777