Correct Syntax for a Loop
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]