[R] Correct Syntax for a Loop

Uwe Ligges ligges at statistik.uni-dortmund.de
Sun Nov 28 13:10:47 CET 2004


ebashi wrote:
> I'll appreciate if some one can help me with the
> following loop. This is the logic of the loop,
> if we have the following data;
> 
>>x.df
> 
>     x.dif
>  .    .
>  .    .
> 102  0.00
> 103  0.42
> 104  0.08
> 105  0.00
> 106  0.00
> 107  0.00
> 108 -0.16
> 109 -0.34
> 110  0.00
> 111 -0.17
> 112 -0.33
> 113  0.00
> 114  0.00
> 115  0.00
> 116  0.33
> 117  0.17
> 118  0.00 
>  .    .
>  .    .
> I'm trying to find i's where 
>   for (i in 2:length(x.dif))
>   if (x.dif[i-1]<=0 and x.dif[i]>0 and x.dif[i+2]>0)

Solution to the question:

a) you cannot loop to length(x.dif), x.dif[i+2] does not exist for 
i==length(x.dif).
b) Use && instead of "and" in this case
c) vector operations are much mor

Hint: If you lengthen the vectors appropriately, you can apply the 
comparisons vectorized  rather than in a loop...

Uwe Ligges

>   it would return i+2 to me,
> How can I turn this to a right format as a loop.(I
> can't figure out the syntax)
> 
> Cheers,
> 
> Sean
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html




More information about the R-help mailing list