[R] How to speed up the for loop by releasing memeory
    Duncan Murdoch 
    murdoch.duncan at gmail.com
       
    Sat Dec 15 17:42:59 CET 2012
    
    
  
On 12-12-15 10:10 AM, Yong Wang wrote:
> Dear list;
>
> How can I speed up the run of following code (illustrative)
> #========================================================================
> con<-vector("numeric")
>
> for (i in 1:limit)
> {
> if(matched data for the ith item found) {
>              if(i==1) {con<-RowOfMatchedData } else
> {con<-rbind(con,matchedData)}
>                                                          }
> }
> #========================================================================
>
> each RowOfMatchedData contains 105 variables, when "i" runs over 10^7
> and the data container "con" get large enough, the codes get extremely
> slow, I know this is a working memory problem (2GB only), is there
> anyway to circumvent this problem without dicing and slicing the data.
You are reallocating and copying con in every step in your loop. 
Preallocate it and just assign new data into the appropriate row and 
things will be much faster.
Duncan Murdoch
    
    
More information about the R-help
mailing list