2016-11-22 58 views
1

我想保留从dts1,我有自己的事务ID在dts2 这所有的数据的数据是我的数据:子集中的所有从其他数据集

dts1 <- data.frame (id = c(1,2,3,4,1,1), transactionID =c (10,22,47,15,13,NA)) 

dts2 <- data.frame (transactionID = c(10,9,20,22)) 

dts1我有事务ID 10属于属于ID 2 所以,我希望ID 1和交易22来自ID和ID 2保持所有数据,并删除数据对其他ID:我理想的结果应该是:

id transactionID 
    1   10 
    2   22 
    1   13 
    1   NA 

这其中不保留关于IDS的所有信息

dts3 <- dts1 [dts1$transactionID %in% dts2$transactionID,] 
+0

13不在DTS2 – HubertL

+0

是的,这就是问题所在。 13属于ID 1,因为我在dts2中有一个ID为1的交易ID是10,我希望保留ID 1中的所有数据。不太清楚是否清楚。 – MFR

回答

2

你可以做到这一点在2个步骤:

首先你会得到您拥有ID在DTS2交易是这样的:

dts1 [dts1$transactionID %in% dts2$transactionID ,1] 
[1] 1 2 

那么你得到的交易塔具有这些ID:

dts1[dts1$id %in% dts1[dts1$transactionID %in% dts2$transactionID ,1],] 
    id transactionID 
1 1   10 
2 2   22 
5 1   13 
6 1   NA 
2

双合并:

merge(merge(dts1,dts2)["id"], dts1) 
# id transactionID 
#1 1   10 
#2 1   13 
#3 1   NA 
#4 2   22 
相关问题