我有一个包含不同时间观测值的数据框。只要一个ID的“Match”列有正值,该ID在其后续日期的行必须被删除。以下是示例数据框:
Date ID Match
2018-06-06 5 1
2018-06-06 6 0
2018-06-07 5 1
2018-06-07 6 0
2018-06-07 7 1
2018-06-08 5 0
2018-06-08 6 1
2018-06-08 7 1
2018-06-08 8 1
期望输出:
Date ID Match
2018-06-06 5 1
2018-06-06 6 0
2018-06-07 6 0
2018-06-07 7 1
2018-06-08 6 1
2018-06-08 8 1
换句话说,因为ID=5在2018-06-06上有正匹配,所以ID=5的行将被删除,但是该ID的第一个正匹配行将被保留。
可重现的示例:
Date <- c("2018-06-06","2018-06-06","2018-06-07","2018-06-07","2018-06-07","2018-06-08","2018-06-08","2018-06-08","2018-06-08")
ID <- c(5,6,5,6,7,5,6,7,8)
Match <- c(1,0,1,0,1,0,1,1,1)
df <- data.frame(Date,ID,Match)
感谢您的预先帮助。
cbind
,可以直接使用data.frame(Date, ID, Match)
。使用cbind
会生成一个矩阵,所以三列数据都会变成因子或字符串。 - Frank