On Tue, 22 Aug 2006, hadley wickham wrote: > > The loop method took 195 secs. Just assigning to an answer of the correct > > length reduced this to 5 secs. e.g. use > > > > ADDRESSES <- character(length(VECTOR)-4) > > > > Moral: don't grow vectors repeatedly. > > Other languages (eg. Java) grow the size of the vector independently > of the number of observations in it (I think Java doubles the size > whenever the vector is filled), thus changing O(n) behaviour to O(log > n). I've always wondered why R doesn't do this.
At one point at least that was too expensive on memory/address space (and it may still be for 32-bit OSes). There is even a 'truelength' field in the vector header to allow for such a strategy, and the strategy is used in scan() and elsewhere. In my experience it is relatively rare not to know the vector length in advance in R code. -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ [email protected] 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.
