为什么 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(多精度算术包)这样的包。
我注意到如果我有一个大于 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(多精度算术包)这样的包。