[R] For Loop performance

Uwe Ligges ligges at statistik.tu-dortmund.de
Sun Jan 13 19:26:48 CET 2008



My Coyne wrote:
> Hello,
> 
>  
> 
> Newbie question and hope you can help .
> 
> I have two vector V1 and V2, where length(V2) = length of (V1) * 2;
> length(V1) ~ 16,000.
> 
> For each member in V1, I need to compare 2 element of V2 for equality


If just the comparison is concerned, you can do it in vectorized form, 
but I am not sure of you want to comapre v1[i] with v2[i] and v2[i+1], 
otherwise it would not make sense that  length(V2) = length of (V1) * 2 ...

Say length(V1) is n, do you want to compare

v1[1] with v2[1] and v2[2] and v1[2] with v2[3] and v2[4]
or
v1[1] with v2[1] and v2[n+1] and v1[2] with v2[2] and v2[n+2]

???

Uwe Ligges






>  
> 
> i.e. 
> 
> for (I in 1:length (V1)) {
> 
>      if ( v2[i] == v1[i] & v2[i+1]==v1[i] ){
> 
>           statement_1
> 
>           statement_2
> 
>           .
> 
>      }
> 
> }
> 
>  
> 
> This for-loop is too slow (it takes a good 5 minutes on my Windows machine)
> to  finish processing the vector V1 of 16,000; I will need to process a lot
> more than 16,000  (about 300*16,000).
> 
>  
> 
> Is there a better way to do looping with R?  Any help is greatly appreciate
> 
>  
> 
> --MyC.
> 
>  
> 
>      
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at 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.




More information about the R-help mailing list