在R中,处理大数值时有哪些数据类型选择?默认情况下,整数的大小似乎是32位,因此来自SQL服务器的bigint数字以及通过rpy2从Python传递的任何大数值都会出现问题。
> 123456789123
[1] 123456789123
> 1234567891234
[1] 1.234568e+12
使用 RODBC 读取值为 123456789123456789 的 bigint 值时,返回的值是 123456789123456784(最后一位不同)。如果使用 RJSONIO 进行反序列化,那么相同的数字会被返回为 -1395630315L(这似乎是 RJSONIO 的另一个错误/限制)。> fromJSON('[1234567891]')
[1] 1234567891
> fromJSON('[12345678912]')
[1] -539222976
实际上,我需要能够处理来自JSON的大数值,鉴于RJSONIO的限制,除了寻找更好的JSON库(目前好像不可行),我可能没有其他的解决方法。我想听听专家们对此以及一般情况下的观点。