[R] Performance note: Preallocating helps? and two questions

Emmanuel Paradis paradis at isem.univ-montp2.fr
Wed Nov 1 17:45:45 CET 2000

Ignore my reply as I have now received Peter's and Kaspar's judicious ones.


At 06:00 01/11/00 -0800, you wrote:
> in r 1.1 on windows 2000
> with length(AU) of 35833
> AUcap30<-0
> for(i in 1:length(AU))AUcap30[i]<-min(30,AU[i]) 
>took over an hour on pentium II 300 mhertz (I esc'ed before it finished)
> for(i in 1:length(AU))AUcap30[i]<-min(30,AU[i]) 
>is very quick (a few seconds)
>Is this performance difference common in r (ie is linux the same way)?

I do not think this is a problem with memory. In the first case, you have
length(AUcap30)==1, thus your loop is non-sense. I would have expected an
error message here like "subscript out of range for AUcap30" (is this a
bug? it seems R is trapped in the loop). In the second case, you have:

> length(AU)==length(AUcap30)
[1] TRUE

and things are fine.

Emmanuel Paradis

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list