[OK]を設定ループ旅行最大「n」の行
だから私は現在、< -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の最大nlinesを移動した後に0が表示されます。
5行以内の別の信号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行のために旅行する各< -1.0値に9行目に、我々は最大5ながら繰り返し< 1.0を持っていますnlines条件が満たされていない場合、これは最大 'n'行の旅行内の繰り返しを無視します。
私たちは< -1.0を満たし、5行の最大旅行のために1を印刷します。
素晴らしい - 素晴らしい作品です - ありがとうございます! –