У меня возникают проблемы со ссылками на условия, которые имеют место в нескольких строках, с использованием цикла for.
Идея заключается в следующем. Есть датафрейм с колонками LastPrice и KCT. Хотите добавить столбец SignalBinary в фрейм данных, и если
1) LastPrice[j] > KCT[j] в любых 3 последовательных строках, &
2) LastPrice[j+1] - LastPrice [j+1+3] > 12 в любой из строк от j+1 до j+1+10 (т.е. на 10 строк ниже)
затем хотите записать 1 в SignalBinary[i].
df <- data.frame(nrow =20, ncol =2)
df <- data.frame(LastPrice = c(1221,1220,1220,1217,1216,1218,1216,1216,1217,1220,1219,1218,1220,1216,1217,1218,1218,1207,1206,1205), KCT = c(1218,1218,1219,1218,1221,1217,1217,1216,1219,1216,1217,1216,1219,1217,1218,1217,1217,1217,1219,1217))
df$SignalBinary <-for(j in1:20){for(i in1:10){ifelse (df$LastPrice[j]> df$KCT[j]& df$LastPrice[j+1]> df$KCT[j+1]& df$LastPrice[j+2]> df$KCT[j+2]& df$LastPrice[j+i]- df$LastPrice[j+i+3]>12,1,0)}}
Основываясь на данных, можно было бы ожидать, что код будет записывать 1 в строках 10 и 11 и 0 в остальных. Но я делаю что-то не так. Запуск кода не выдает сообщения об ошибке, но и не создает df$SignalBinary. Запуск df$SignalBinary говорит NULL.
Кстати, цель этого состоит в том, чтобы применить код к большой базе данных цен, чтобы запустить статистику по бинарным сигналам.
Надеюсь, кто-то может помочь. Большое спасибо