我在R中有一个数据集,其中一列指示任务上的错误:0 =没有错误。 1 =错误。
如何删除错误列显示1(错误)和后续行(即使它是0)的行?
示例:
id part block response time wrong
1 1 1 1 307 2015-04-26 0
2 2 1 1 291 2015-05-03 1
3 3 1 1 310 2015-05-10 0
如何删除第2行和第3行?
干杯!
答案 0 :(得分:0)
首先制作样本数据集:
df <- data.frame(id=1:10, error=sample(0:1, size = 10, replace = T, prob = c(0.7,0.3)))
查找标记错误的行的行数,以及后续行, 无论他们的错误状态如何。
to_remove <- c(which(df$error == 1), which(df$error == 1)+1)
确保行号不大于df中的行数。
to_remove <- to_remove[!(to_remove>nrow(df))]
删除线条。
df <- df[-to_remove,]
答案 1 :(得分:0)
你可以这样做:
library(dplyr)
df %>% filter(!(wrong == 1 | lag(wrong == 1, default = F)))