# Re: [R] For Loop performance

From: <mcoyne_at_boninc.com>
Date: Sun, 13 Jan 2008 13:45:07 -0500 (EST)

WRT: 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]

```v1[1] with (v2[1] and v2[2])
v1[2] with (v2[3] and v2[4])
v1[3] with (v2[5] and v2[6])
```

....
...
v1[n] with (v2[n+1] and v2[n+2])

I hope this is clear (I think I was wrong in the snippet of code earlier).  Thanks in advance.

--MyC

>
>
> 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