1
IDが "type = B"の日付以降に発生する各IDの日付に基づいてすべての行を削除しようとしています。R - 条件付き日付の後に行を削除/削除する(複数の条件)
私は配列検索ヘルパー列を使って削除するフラグを設定します。 Rでこれを行うにきれいな方法がありますか?
最小例:このResultに
library(data.table)
#input
colNames<-c("id","date","type")
df2 <- data.table(c("010","010","010", "010","030","210","310"),
as.Date(c("2009-08-21","2012-12-28","2014-01-01","2011-07-05","2015-04-05","2013-07-05","2012-08-01")),
c("A", "B","A","A", "A", "B", "B")
)
df2<-df2[order(df2$V1, as.Date(df2$V2, format="%y/%m/%d")),]
names(df2) <- colNames
df2
id date type
1: 010 2009-08-21 A
2: 010 2011-07-05 A
3: 010 2012-12-28 B
4: 010 2014-01-01 A
5: 030 2015-04-05 A
6: 210 2013-07-05 B
7: 310 2012-08-01 B
:
#output
V1 V2 V3
1: 010 2009-08-21 A
2: 010 2011-07-05 A
3: 030 2015-04-05 A
ありがとう!あなたが最初のB
のインデックスを見つけるとhead
とインデックスの前の行を取るためにmatch
を使用することができます