在“ a”列中查找对于两个不同数据集在“ b”列中具有不同值的值

问题描述 投票:0回答:1

数据包含多列和3000行

相同OrderNo但不同Ordertype

我想获得在两个数据帧中OrderNo不同的所有Ordertype

我已经从两个数据框中分离出两列,并将它们设置为升序。然后,我尝试使用函数cbind合并两列,并在其中一列中找到缺少的值。

xxx <- data.frame( orderNo = c(1:10), Ordertype = c("a", "b", "c", "d", "a", "b", "c", "d", "e", "f"))
yyy <- data.frame( orderNo = c(1:10), Ordertype = c("a", "b", "c", "d", "a", "b", "e", "d", "e", "f"))

在以上示例中:OrderNo“ 7”对应于一个数据帧中的“ c”,而另一数据帧中的“ e”。我希望在Ordertype列中使用所有这些数字的集合作为不同的值。

r
1个回答
0
投票

听起来您想要一个包含两个数据帧之间差异的数据帧,并由orderNo匹配(包括)。正确吗?

一种可能性是:

res <- merge(xxx, yyy, by = "orderNo")
res[res[,2] != res[,3], ]

  orderNo Ordertype.x Ordertype.y
7       7           c           e

使用dplyranti_join,您可以执行以下操作找到不同之处:

library(dplyr)
inner_join(anti_join(xxx, yyy), anti_join(yyy, xxx), by='orderNo')

  orderNo Ordertype.x Ordertype.y
1       7           c           e
© www.soinside.com 2019 - 2024. All rights reserved.