Skip to content
Back to formatted view

Raw Message

Message-ID: <644e1f320903181949n759576b1y3c7dfc79217da750@mail.gmail.com>
Date: 2009-03-19T02:49:02Z
From: jim holtman
Subject: object size of a matrix and a list
In-Reply-To: <d9ad173c0903181914q72221505ofa0983f238241a95@mail.gmail.com>

You were doing for a small size where the overhead masked the gains.
Here a larger case where you can see the differences:

>  #matrix
>   beta.mat <- matrix(0,nr=500, nc=200)
>
>   #list
>   gamma.mat <- list(a= matrix(1L, 500, 100), b=matrix(1.0, 500, 100))
>
>   object.size(beta.mat)
[1] 800112
>   object.size(gamma.mat)
[1] 600408
> str(gamma.mat)
List of 2
 $ a: int [1:500, 1:100] 1 1 1 1 1 1 1 1 1 1 ...
 $ b: num [1:500, 1:100] 1 1 1 1 1 1 1 1 1 1 ...
>

How big do you expect your data items to get?  No need to try to
optimize if they are not large (e.g., taking up 10% of your available
memory).

On Wed, Mar 18, 2009 at 10:14 PM, Kyeongmi Cheon <katie.cheon at gmail.com> wrote:
> Hello,
> My program calculates several variables at each iteration and some of them are
>
> integers and the rest are numeric. When I save them into a matrix, all of them
>
> are of numeric type, of course.
>
> I'm trying to find a way to save time/memory of my program and I was thinking
>
> that it might help to force some variables to be of integer type and the other
>
> columns numeric type.
>
> But when I actually tried it, I found it contrary. A list that has mixtures of
>
> integers and doubles are larger in size than a matrix that has only doubles. Do
>
> lists always take up more space than matrices if they have the same/similar
>
> variables? I just want to know it for the sake of efficiency. Thank
> you for your time.
> Kyeongmi
>
>
> My short test program is here:
>
>
> ? #matrix
> ? beta.mat <- matrix(0,nr=5, nc=2)
> ? for (i in 1:5){
> ? ? ?beta.mat[i,] <- c(i,i*10.0)
> ? }
>
> ? #list
> ? gamma.mat <- list()
> ? for (i in 1:5){
> ? ? ?gamma.mat$aa[i] <- i
> ? ? ?gamma.mat$bb[i] <- i*10.0
> ? }
>
> ? object.size(beta.mat) #240
> ? object.size(gamma.mat) #312
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?