大数字上的as.numeric不会给出预期的输出

时间:2016-11-15 12:39:39

标签: r precision numeric

我有大数字作为字符,我想将它们转换为数字,但这会产生不同的输出然后预期:

> as.numeric("716897400001401732323")
[1] 716897400001401716736

R无法正确解释完整数字的原因是什么,我怎么能解决这个问题?

很抱歉它不是真的重复,因为我正在使用融合功能来融合维度名称为大数字的数组。

test <- array(c(1,2,3,4,5,6,7,8), dim = c(2,2,2), dimnames = list(c("122323232323232312121","23232323232323212121"),
                                                                  c("a","b"),
                                                                  c("c", "d")))

> melt(test)
                   Var1 Var2 Var3 value
1 122323232323232317440    a    c     1
2  23232323232323211264    a    c     2
3 122323232323232317440    b    c     3
4  23232323232323211264    b    c     4
5 122323232323232317440    a    d     5
6  23232323232323211264    a    d     6
7 122323232323232317440    b    d     7
8  23232323232323211264    b    d     8

更明确地说:问题可以通过两种方式解决,首先,融化应该将其作为角色来解决,但我没有得到这个问题的答案,请参阅:Melt a array and make numeric values character 所以我认为我会将列类型作为字符并且问题得到解决,但问题是从字符到数字的转换不起作用,因为数字很大。

希望这个问题现在更有意义

0 个答案:

没有答案