我希望保留dts1
的所有数据,即我在dts2
中拥有其交易ID
这是我的数据:
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 1,交易22属于ID 2. 因此,我希望保留Id 1和id 2中的所有数据并删除有关的数据其他ID :我的理想输出是:
id transactionID
1 10
2 22
1 13
1 NA
这个没有保留有关ids的所有信息
dts3 <- dts1 [dts1$transactionID %in% dts2$transactionID,]
答案 0 :(得分:2)
双重合并:
merge(merge(dts1,dts2)["id"], dts1)
# id transactionID
#1 1 10
#2 1 13
#3 1 NA
#4 2 22
答案 1 :(得分:2)
您可以分两步完成:
首先你得到dts2中有交易的id,如下所示:
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