2016-07-16 3 views
1

В моей кадре данных я хотел бы выбрать строку на основе некоторой логики, а затем вернуть кадр данных с выбранной строкой PLUS в следующие строки «N».R Выбор строки и следующих 5 строк

Итак, у меня есть это: (общий пример)

workingRows <- myData[which(myData$Column1 >= myData$Column2 & myData$Column3 <= myData$Column4), ] 

Который возвращает меня правильные "стартовые значения". Как я могу получить «следующие» 5 значений на основе каждого из стартовых значений?

+0

На следующий раз: Пожалуйста, прочитайте информацию о [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и как дать [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610). Это облегчит вам помощь другим людям. – Jaap

+1

Хорошо, я понял, в следующий раз я дам минимальный набор данных для людей, с которыми нужно протестировать. – funk101

ответ

5

Мы можем использовать rep, чтобы получить следующие 5 строк, sort это, и если есть какие-либо дубликаты от наложений, обертывают его с unique и подмножество в «MyData».

i1 <- which(myData$Column1 >= myData$Column2 & myData$Column3 <= myData$Column4) 
myData[unique(sort(i1 + rep(0:5, each = length(i1)))),] 
+2

О, хорошо, я как раз собирался предложить добавить уникальный, но вы видели потенциал для перекрытий. –

+1

Сладкий! Спасибо, прекрасно работает. – funk101

Смежные вопросы