Thanks a lot!! Any integer is single element, whereas any number with decimal point is double element ? Is that right ?
below is what I tried so, basically, simply force it to be integer would save some space ? P=10000 a=rnorm(P*P)*1000 a=as.integer(a) D1=matrix(a, nrow=P) object.size(D1) >4000112 bytes b=rnorm(P*P)*1000 D2=matrix(b, nrow=P) object.size(D2) >8000112 bytes On Wed, Oct 6, 2010 at 5:44 AM, David Winsemius <dwinsem...@comcast.net>wrote: > > On Oct 5, 2010, at 11:17 PM, Carrie Li wrote: > > Thank you, Henrik! That makes more sense now. >> You mentioned that every double value needs 8 bytes. So, in R, how many >> decimal point, or any number smaller than, say 10^4 are considered as >> double >> value ? (Sorry I don't have any C or Java language background, and >> couldn't >> find it for R. ) >> > > You can specify an integer mode for a vector by using an "L" after the > digits used in its definition or by using mode = integer in the call to the > vector function. You can test for integer statsus with is.integer and coerce > to integer status with as.integer. IN all other instances you should assume > that the storage mode is double. The storage mode does not vary by element, > and an integer vector can quickly be coerced to double if you make an > assignment of double mode. > > > a <- c(1L, 2L, 3L) > > a > [1] 1 2 3 > > is.integer(a) > [1] TRUE > > a[3] <- 1.2 > > is.integer(a) > [1] FALSE > > > After coercion to double the vector will now take up the full 8 bytes (plus > overhead) per element, but is rather set at the vector level: > > > b <- rep(1L, 100) > > object.size(b) > 440 bytes > > b[100] <- 1.2 # change single element to double. > > object.size(b) > 840 bytes > > -- > David. > > > > > >> I appreciate your explanation and helps! >> >> On Tue, Oct 5, 2010 at 8:32 PM, Henrik Bengtsson <h...@stat.berkeley.edu >> >wrote: >> >> On Tue, Oct 5, 2010 at 5:21 PM, Carrie Li <carrieands...@gmail.com> >>> wrote: >>> >>>> I am sorry that it has been couple days. >>>> I've read the website you provided below, but still don't quite know if >>>> >>> this >>> >>>> is doable. >>>> The maximum vector length is 2^31-1, so here is what I tired, and it >>>> returned errors as below. >>>> >>>> >>>> P=20000 >>>> D=matrix(rep(0, P*P), nrow=P) >>>> >>>> Error: cannot allocate vector of size 1.5 Gb >>>> In addition: Warning messages: >>>> 1: In as.vector(data) : >>>> Reached total allocation of 1535Mb: see help(memory.size) >>>> >>>> On the manuals, it says "32-bit OSes by default limit file sizes to 2GB >>>> >>> ", >>> >>>> so why P=20000 is not working here ? >>>> >>> >>> Every double value (e.g. 0) needs 8 bytes. So the total memory needed >>> for that matrix is 8*P*P = 3.2e+09 bytes = 3.2e+09/1024^3 Gb = 2.98Gb. >>> Now, in order to do anything useful you also need space for creating >>> an internal copy or two of that object. That is, you basically need >>> 2-3 times more *free* (and *contiguous/non-fragmented*) RAM than that >>> to do anything useful. >>> >>> /Henrik >>> >>> >>>> Thanks for any helps. I appreciate. >>>> >>>> >>>> On Sat, Oct 2, 2010 at 12:22 PM, Marc Schwartz <marc_schwa...@me.com> >>>> >>> wrote: >>> >>>> >>>> On Oct 2, 2010, at 11:14 AM, Carrie Li wrote: >>>>> >>>>> Hi everyone, >>>>>> >>>>>> If I run on a 64-bit R, what is the maximum matrix size that it can >>>>>> >>>>> handle ? >>>>> >>>>>> Is a matrix 20,000 x 20,000 possible on 32 bit ? >>>>>> Thanks for answering! >>>>>> >>>>> >>>>> >>>>> A matrix is a vector with 'dim' attributes. The maximum vector length >>>>> is >>>>> 2^31 - 1 and that does not change between 32 and 64 bit R. The primary >>>>> advantage of 64 bit R is the larger memory address space. >>>>> >>>>> See: >>>>> >>>>> >>>>> >>>>> >>> http://cran.r-project.org/doc/manuals/R-admin.html#Choosing-between-32_002d-and-64_002dbit-builds >>> >>>> >>>>> HTH, >>>>> >>>>> Marc Schwartz >>>>> >>>>> >>>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> R-help@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. >>>> >>>> >>> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@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. >> > > David Winsemius, MD > West Hartford, CT > > [[alternative HTML version deleted]] ______________________________________________ R-help@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.