数据包含多列和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
列中所有这些数字都具有不同值的集合作为输出。
答案 0 :(得分:0)
听起来您想要一个包含两个数据帧之间差异的数据帧,并由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