# [R] Correct Syntax for a Loop

(Ted Harding) Ted.Harding at nessie.mcc.ac.uk
Sun Nov 28 13:10:00 CET 2004

```On 28-Nov-04 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)
>   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)

In this sort of case you can do it without a loop. The
following code (which as written is specific to the precise
question you have asked) is the sort of thing you can use:

n<-length(x.dif)
y2<-x.dif[4:n]
y0<-x.dif[2:(n-2)]
y1<-x.dif[1:(n-3)]
which((y1<=0)&(y0>0)&(y2>0))+3

Hoping this helps,
Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861  [NB: New number!]
Date: 28-Nov-04                                       Time: 12:10:00
------------------------------ XFMail ------------------------------

```