Skip to content

R limits documented?

7 messages · Dominick Samperi, Simon Urbanek, David Winsemius +2 more

#
Is there documentation on R limits?
That is, max matrix size, etc.?

Diagnostics when limits are exceeded are not always
meaningful. For example:
Error in rep(0, 50000 * 50000) : invalid 'times' argument
In addition: Warning message:
In as.vector(data) : NAs introduced by coercion

Here's another example:
Error in if (signs[1] == "- ") "-" else "" :
  missing value where TRUE/FALSE needed

Thanks,
Dominick
#
On Feb 11, 2011, at 7:09 PM, Dominick Samperi wrote:

            
> x <- rep(0,40000*50000)
 > gc()
              used    (Mb) gc trigger    (Mb)   max used    (Mb)
Ncells    4673306   249.6    6945861   371.0    5315868   283.9
Vcells 2165579376 16522.1 4374103452 33371.8 4165580443 31780.9
 > object.size(x)
16000000040 bytes

So that is about 2/3 of my installed memory. This seems to be a  
limitation due to the maximum positive integer being ~ 2*10^9
 > 2*10^9 < 50000*50000
[1] TRUE
 > 2*10^9 < 40000*50000
[1] FALSE
Sounds as though the maximum length of an element of type character  
has been exceeded.
David Winsemius, MD
West Hartford, CT
#
On Feb 11, 2011, at 7:55 PM, David Winsemius wrote:

            
The actual limit is for obvious reasons 2^31-1
[1] 2147483647
[1] NA
Warning message:
NAs introduced by coercion 

(ok, for those that this is not obvious: the integer type ("int" in C) is 32-bit wide and it is a signed type so the range is -2^31-1 .. 2^31-1 -- the minus one on each side is the representation of NA and 0 respectively).

Cheers,
Simon
#
On Feb 11, 2011, at 8:45 PM, Simon Urbanek wrote:

            
correction: the range should have read -(2^31-1) .. 2^31
#
On Feb 11, 2011, at 8:46 PM, Simon Urbanek wrote:

            
I was using the number given in the help page documentation for  
"integer". (Part of the question was whether it was "documented".) I  
did understand that it was d/t the 4 byte range.

Regarding the second part of the OP's question.... this is from the  
"character" help page:
"as.character truncates components of language objects to 500  
characters (was about 70 before 1.3.1)."

And there was a posting from Prof Ripley regarding some other  
limitations that had been recently modified:
https://stat.ethz.ch/pipermail/r-devel/2010-November/058989.html
#
I think it is easiest to point people to the manual "R Internals" for 
questions on the size of integers, pointers etc.

Best,
Uwe Ligges
On 12.02.2011 03:24, David Winsemius wrote:
#
On Sat, 12 Feb 2011, Uwe Ligges wrote:

            
But ?"Memory-limits" is a good start.

The messages below (which were not from a current version of R with 
that call!) come from
[1] NA
Warning message:
NAs introduced by coercion

and times = NA is of course invalid.