为什么 as.integer 在 R 中返回 NA?

Why is as.integer returning NA in R?

我注意到如果我有一个大于 10 位的数字,as.integer 函数将 return NA。

例如:

as.integer(10000000000)

会给NA。

为什么会这样?我想这可能与整数的存储有关?我该如何解决这个问题?

谢谢。

您可以通过以下方式找到整数的限制:

> .Machine$integer.max
[1] 2147483647

任何更大的值都将被解释为 NA

> as.integer(.Machine$integer.max)
[1] 2147483647
> as.integer(.Machine$integer.max+1)
[1] NA
Warning message:
NAs introduced by coercion to integer range 

如果您需要处理更大的值,请使用 as.numeric(数字可以处理比整数更大的值)或像 gmp(多精度算术包)这样的包。