On Mon, 19 Feb 2007, Federico Calboli wrote:
> Hi All,
>
> I would like to ask the following.
>
> I have an array of data in an objetct, let's say X.
>
> I need to use a for loop on the elements of one or more columns of X and I
am
> having a debate with a colleague about the best memory management.
Yez guys should take this fight out into the parking lot. ;-)
Armed with gc(), system.time(), and whatever memory monitoring tools your
OS'es provide you can pound each other with memory usage and timing stats
till one of you screams 'uncle' or you both have had enough and decide
to
shake hands and come back inside.
>
> I believe that if I do:
>
> col1 = X[,1]
> col2 = X[,2]
> ...
> colx = X[,x]
>
>
> and then
>
> for(i in whatever){
> do something using col1[i], col2[i] ... colx[i]
> }
>
> my memory management is better that doing:
>
> for(i in whatever){
> do something using X[i,1], X[i,2] ... X[,x]
> }
>
Whoa! You are accessing one ROW at a time.
Either way this will tangle up your cache if you have many rows and
columns in your orignal data.
You might do better to do
Y <- t( X ) ### use '<-' !
for (i in whatever ){
do something using Y[ , i ]
}
> BTW, here I *have to* use a for() loop an no nifty tapply, lapply and
family.
>
> Any comment is welcome.
>
> Best,
>
> Fede
>
> --
> Federico C. F. Calboli
> Department of Epidemiology and Public Health
> Imperial College, St Mary's Campus
> Norfolk Place, London W2 1PG
>
> Tel +44 (0)20 7594 1602 Fax (+44) 020 7594 3193
>
> f.calboli [.a.t] imperial.ac.uk
> f.calboli [.a.t] gmail.com
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
>
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu UC San Diego
http://biostat.ucsd.edu/~cberry/ La Jolla, San Diego 92093-0901