比较当前行与R中的上一个

时间:2019-01-30 20:16:26

标签: r

如果C的当前值大于上一个值,我想删除整行,然后删除该行

A  B   C 
1: 1 10 100
2: 2 20 200 
3: 3 30 800
4: 4 40 400
5: 5 50 500

例如,在第3行:800> 200,因此删除第3行

结果:

 A  B    C
1: 1 10 100
2: 2 20 200
4: 4 40 400
5: 5 50 500

谢谢!

2 个答案:

答案 0 :(得分:0)

这可以做到:

your_data[c(diff(your_data$C) >= 0, TRUE), ]

答案 1 :(得分:0)

使用dplyr

library(dplyr)
filter(df, C <= lead(C, default = C[n()]))

输出:

  A  B   C
1 1 10 100
2 2 20 200
3 4 40 400
4 5 50 500

数据:

df <- structure(list(A = 1:5, B = c(10L, 20L, 30L, 40L, 50L), C = c(100L, 
200L, 800L, 400L, 500L)), class = "data.frame", row.names = c("1:", 
"2:", "3:", "4:", "5:"))