0
所以我目前發現的值低於< -1,將打印1,否則爲0環它將然後循環,直到找到另一個值> = 1.
value <- c(0.2,0.3,0.4,0.5,0.6,-2.0,0.7,0.4,-10,0.1,0.2,0.4,3.0,0.6,0.7,0.8,-1.2,0.6,0.7,0.8,0.3,0.5,2,0.1,0.2)
df <- data.frame(signal =0,value)
df$signal[[1]] = ifelse(df$value[[1]] < (-1), 1, 0)
for (i in 2:nrow(df)){
df$signal[i] = ifelse(df$value[i] < (-1), 1,
ifelse(df$value[i] >= 1, 0,
df$signal[i-1]))
}
df
我打算做的是不是退出循環> 1,而是在固定數量的'n'行之後退出。 因此,如果我設置總循環行程從初始-1找到5行,它將在其行進的最大行數爲5後打印0。
如果我們遇到另一個信號1,忽略這一點,只是繼續5行旅行。
林沿設置一個計數器的線條思維:
counter <- 1
repeat {
df$signal = ifelse(df$value < (-1), 1, 0)
counter <- counter+1
if(counter > 5) {
break
}
}
上述接縫合理但它不生產我的結果。
任何人有任何想法呢?
期望的輸出將是:
signal value
1 0 0.2
2 0 0.3
3 0 0.4
4 0 0.5
5 0 0.6
6 1 -2.0
7 1 0.7
8 1 0.4
9 1 -10.0
10 1 0.1
11 0 0.2
12 0 0.4
13 0 3.0
14 0 0.6
15 0 0.7
16 0 0.8
17 1 -1.2
18 1 0.6
19 1 0.7
20 1 0.8
21 1 0.3
22 0 0.5
23 0 2.0
24 0 0.1
25 0 0.2
上我們打印1和5行旅行...也第9行每< -1.0值通告,我們有一個重複< 1.0,而最多5 nlines條件沒有得到滿足,這忽略了在最大'n'行程範圍內的重複。
再行第17行,我們遇到了< -1.0,並打印1行5行的最大行程。
奇妙 - 作品 - 非常感謝你! –