让我们假设数据集1:
ID ITEM SEQ TRANS_DATE EXPIRE_DATE
1 2002 3 2014-11-27 2015-08-27
1 2002 4 2015-08-27 2016-08-27
2 1003 2 2014-11-27 2015-07-03
2 1003 3 2015-07-03 2016-07-03
2 1003 4 2015-08-03 2016-07-03 让我们假设数据集2:
ID ITEM SEQ TRANS_DATE EXPIRE_DATE
1 2002 3 2014-11-27 2015-08-27
2 1003 2 2014-11-27 2015-07-03 如何根据数据集2对数据集1进行子集?而根据不同的ID,项目组,SEQ是否大于数据集2中的值?结果将如下所示:
ID ITEM SEQ TRANS_DATE EXPIRE_DATE
1 2002 4 2015-08-27 2016-08-27
2 1003 3 2015-07-03 2016-07-03
2 1003 4 2015-08-03 2016-07-03 发布于 2015-12-15 14:48:46
试一试
library(data.table)
setDT(df1, key='ID')
setDT(df2, key='ID')
i1 <- df1[df2, .I[SEQ > i.SEQ] ,by=.EACHI]$V1
df1[i1]
# ID ITEM SEQ TRANS_DATE EXPIRE_DATE
#1: 1 2002 4 2015-08-27 2016-08-27
#2: 2 1003 3 2015-07-03 2016-07-03
#3: 2 1003 4 2015-08-03 2016-07-03或
setDT(df1)[df1[df2[c(1,3)], SEQ> i.SEQ, on = 'ID']]
# ID ITEM SEQ TRANS_DATE EXPIRE_DATE
#1: 1 2002 4 2015-08-27 2016-08-27
#2: 2 1003 3 2015-07-03 2016-07-03
#3: 2 1003 4 2015-08-03 2016-07-03https://stackoverflow.com/questions/34282647
复制相似问题