On Feb 11, 2011, at 8:46 PM, Simon Urbanek wrote:


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


On Feb 11, 2011, at 7:55 PM, David Winsemius wrote:


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

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

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

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


The actual limit is for obvious reasons 2^31-1

as.integer(2^31-1)
[1] 2147483647
as.integer(2^31)
[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).


correction: the range should have read -(2^31-1) .. 2^31

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

--
David.


Cheers,
Simon


Here's another example:
library(orthopolynom)
hermite <- hermite.h.polynomials(1001)
hermite[[1001]] # should display 1000-th degree polynomial
Error in if (signs[1] == "- ") "-" else "" :
missing value where TRUE/FALSE needed

Sounds as though the maximum length of an element of type character has been exceeded.

Thanks,
Dominick


David Winsemius, MD
West Hartford, CT

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to