[R] large integers in R

Benilton Carvalho beniltoncarvalho at gmail.com
Thu Jan 28 11:30:01 CET 2010


Hi Duncan,

On Tue, Jan 26, 2010 at 9:09 PM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> On 26/01/2010 3:25 PM, Blanford, Glenn wrote:
>>
>> Has there been any update on R's handling large integers greater than 10^9
>> (between 10^9 and 4x10^9) ?
>>
>> as.integer() in R 2.9.2 lists this as a restriction but doesnt list the
>> actual limit or cause, nor if anyone was looking at fixing it.
>
> Integers in R are 4 byte signed integers, so the upper limit is 2^31-1.
>  That's not likely to change soon.

But in the hypothetical scenario that this was to change soon and we
were to have 64bit integer type (say, when under a 64 bit OS),
wouldn't this allow us to have objects whose length exceeded the
2^31-1 limit?


Benilton Carvalho




> The double type in R can hold exact integer values up to around 2^52. So for
> example calculations like this work fine:
>
>> x <- 2^50
>> y <- x + 1
>> y-x
> [1] 1
>
> Just don't ask R to put those values into a 4 byte integer, they won't fit:
>
>> as.integer(c(x,y))
> [1] NA NA
> Warning message:
> NAs introduced by coercion
>
> Duncan Murdoch
>
>>
>> Glenn D Blanford, PhD
>> <mailto:glenn.blanford at us.army.mil>
>> Scientific Research Corporation
>> gblanford at scires.com<mailto:gblanford at scires.com>
>>
>>
>>        [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list