При попытке реализовать вложенные для циклов в большом фрейме данных я понял, что вложенные для циклов не производят ожидаемые результаты. Вот выдержка из моей проблемы.Простая проблема с вложенными циклами
df <- data.frame(nrow = 20, ncol = 1)
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))
for(j in 1:20) {for (i in 1:10) {df$SignalBinary[j] <- ifelse (df$LastPrice[j+i] == 1216, 1, 0)}}
Я бы ожидать, и хочу вложенная для петли, чтобы добавить SignalBinary вектора ДФ dataframe со следующими значениями: "1 1 1 1 1 1 1 1 1 1 NA NA NA NA NA NA NA NA NA NA"
- «1» на первых 10 строк, потому что 1216 присутствует для каждого, по меньшей мере, один из 10 строк ниже
- «NA» на следующие 10, потому что для тех, петля я выходит за пределы длины вектора
Вместо этого, df $ SignalBinary становится «0 0 0 1 0 0 0 0 0 0 NA NA NA NA NA NA NA NA NA NA«
Не получите его. Почему он регистрирует только один 1216? Большое спасибо!
Что такое ваша первая линия? А также, что вы подразумеваете под *, потому что 1216 присутствует для каждого, по крайней мере, в одном из 10 строк ниже *? Ниже, что? Вы имеете в виду, если 1216 присутствует в строках 11-20? –
Угадай первая линия не необходимо. Представляет собой по меньшей мере один раз в строках 02-11 для записи 1 в строке 1, по меньшей мере один раз в строки 03-12 для записи 1 в строке 2 ... и по меньшей мере один раз в строки 11-20 для записи 1 в строка 10. Спасибо. – Krug