[R] memory management uestion [Broadcast]
Federico Calboli
f.calboli at imperial.ac.uk
Tue Feb 20 15:10:16 CET 2007
Liaw, Andy wrote:
> I don't see why making copies of the columns you need inside the loop is
> "better" memory management. If the data are in a matrix, accessing
> elements is quite fast. If you're worrying about speed of that, do what
> Charles suggest: work with the transpose so that you are accessing
> elements in the same column in each iteration of the loop.
As I said, this is pretty academic, I am not looking for how to do something
differetly.
Having said that, let me present this code:
for(i in gp){
new[i,1] = ifelse(srow[i]>0, new[srow[i],zippo[i]], sav[i])
new[i,2] = ifelse(drow[i]>0, new[drow[i],zappo[i]], sav[i])
}
where gp is large vector and srow and drow are the dummy variables for:
srow = data[,2]
drow = data[,4]
If instead of the dummy variable I access the array directly (and its' a 600000
x 6 array) the loop takes 2/3 days --not sure here, I killed it after 48 hours.
If I use dummy variables the code runs in 10 minutes-ish.
Comments?
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
More information about the R-help
mailing list