[R] Correct Syntax for a Loop

Gabor Grothendieck ggrothendieck at myway.com
Sun Nov 28 16:51:01 CET 2004


ebashi <arshia22 <at> yahoo.com> writes:

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

One way is to convert it to a ts time series so you can use the lag
operator and have everything automatically aligned for you:

x.dif.ts <- ts(x.dif)
bool <- lag(x.dif.ts,-3) <= 0 & lag(x.dif.ts,-2) > 0 & x.dif.ts > 0
time(bool)[bool]




More information about the R-help mailing list