你好,我正在尝试将数字转换为R中的整数,但是当数字太大时,它将转换为NA,为什么?我该如何避免这个问题?
只是一些例子
>df[,2]
[1] 0 0 0 0 0 0 0 5361230 780600500 0 0 0
[13] 764111150 0 0 0 0 9999816350 0 23237410347 91198500 1957077150 124890245 64232150
>as.integer(df[,2])
[1] 0 0 0 0 0 0 0 5361230 780600500 0 0 0
[13] 764111150 0 0 0 0 NA 0 NA 91198500 1957077150 124890245 64232150
我想保留NA,因为可能是原始数字吗? 谢谢
答案 0 :(得分:3)
您的数字太大,无法容纳整数:
23237410347 > .Machine$integer.max
## [1] TRUE
使用double也许就足够了。另外,有一个程序包支持64位整数(R本机支持32位)。
library(bit64)
as.integer64(23237410347)
## integer64
## [1] 23237410347