数据包含多列和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
列中使用所有这些数字的集合作为不同的值。
听起来您想要一个包含两个数据帧之间差异的数据帧,并由orderNo
匹配(包括)。正确吗?
一种可能性是:
res <- merge(xxx, yyy, by = "orderNo")
res[res[,2] != res[,3], ]
orderNo Ordertype.x Ordertype.y
7 7 c e
使用dplyr
和anti_join
,您可以执行以下操作找到不同之处:
library(dplyr)
inner_join(anti_join(xxx, yyy), anti_join(yyy, xxx), by='orderNo')
orderNo Ordertype.x Ordertype.y
1 7 c e