Вы хотите использовать функцию lead
, которая указывает на следующую строку.
Если я правильно понял ваш вопрос, вы хотите отфильтровать строку, если в следующей строке есть TimeGap==2
. Вот код:
db=read.table(header=T,text="
row Site Result TimeGap
1. 1 120 1
2. 1 50 3
3. 1 100 3
4. 2 500 1
5. 2 888 3
6. 2 456 3
7. 3 123 1#remove
8. 3 458 2
9. 3 654 3
10. 4 789 1#remove
11. 4 785 2
12. 4 894 3
13. 4 123 3
14. 5 10 1
15. 5 5 3
16. 5 41 3
17. 6 23 1#remove
18. 6 24 2
19. 6 55 3
20. 6 69 1#remove
21. 6 5 2")
db2=db %>% filter(lead(TimeGap)!=2)
setdiff(db$row, db2$row)
# [1] 7 10 17 20 21
Это отфильтровывает строки 7, 10, 17, 20 и 21, как и ожидалось.