[R] Slow computation in for loop
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed May 28 13:43:19 CEST 2003
On Wed, 28 May 2003, Philippe Grosjean wrote:
> I suspect that your problem comes from the rbind(). I have also noticed an
> exponentially slower execution with the increase of the size of the data
> frame that you rbind()s. It is much faster to rbind() several separated
> temporary data frames (let's say, ten by ten loops), and then to rbind()
> them all together.
> An even better solution is to allocate a data frame or matrix with the final
> size (it seems you can predict it in your example), and then use
> df[n, ] <- result
> where df is your allocated data frame and n is the iteration.
Since we are told the results are all numeric, it would be even better to
use a pre-computed numeric matrix to store them. rbind.data.frame is
about the worst possible choice in such circumstances.
Brian D. Ripley, ripley at stats.ox.ac.uk
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
More information about the R-help