2016-07-16 21 views
1

在我的數據框中,我想選擇一行基於某種邏輯,然後返回一個數據框與選定的行加上下一個'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