繁体   English   中英

将当前行与 R 中的前一行进行比较

[英]Compare the current row with a previous on in 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

谢谢!!

这将做到:

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

使用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:"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM