On Mon, Jun 1, 2009 at 12:19 PM, Romain Francois <romain.franc...@dbmail.com> wrote: > Hi, > > Here are a few ways:
Thanks - I like it when I have a choice. > > rep( list( new("track") ), 5 ) OK - This one is executing new("track") once, and copying it into a list. > lapply( 1:5, function(x) new("track") ) This one executes new("track") five times and creates the list. no <- new("track") lapply( 1:5, function(x) return(no)) should do the same, only faster, as new() is executed only once. > list( new("track") ) [ rep(1, 5 ) ] now this is a really sneaky one - I like it, although it is the most difficult to understand. Thanks for these options. I think I will go with the first one, as it is the most intuitive one. Thanks, Rainer > > Romain > > Rainer M Krug wrote: >> >> Hi >> >> I am doing an simulation, and I a large proportion of the simulation >> time is taken up by memory allocations. >> >> I am creating an object, and storing it in a list of those objects. >> >> essentially: >> >> x <- list() >> for (t in 1:500) { >> x[1] <- new("track") >> } >> >> I would like to initialize in one go, to avoid the continuous >> reallocation of memory when a new "track" is added, and fill it wit >> the object created by new("track"). >> >> How can I do this? >> >> thanks >> >> Rainer >> > > > -- > Romain Francois > Independent R Consultant > +33(0) 6 28 91 30 30 > http://romainfrancois.blog.free.fr > > > -- Rainer M. Krug, Centre of Excellence for Invasion Biology, Stellenbosch University, South Africa ______________________________________________ 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.