首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子集基于与R中另一数据集比较的数据集

子集基于与R中另一数据集比较的数据集
EN

Stack Overflow用户
提问于 2015-12-15 14:44:36
回答 1查看 29关注 0票数 0

让我们假设数据集1:

代码语言:javascript
复制
 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:

代码语言:javascript
复制
 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中的值?结果将如下所示:

代码语言:javascript
复制
   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 
EN

回答 1

Stack Overflow用户

发布于 2015-12-15 14:48:46

试一试

代码语言:javascript
复制
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

代码语言:javascript
复制
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-03
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34282647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档