查找具有重复项的向量之间的交集

时间:2019-04-10 02:10:45

标签: r vector set-intersection

我不断发现自己需要一个可以将两个集合相减的函数,但是找不到在R中执行此操作的好方法。

作为一个代表,假设a是我的物品清单,而b是一个客户订单。我想知道在完成客户的订单后仓库里还剩下什么产品。

例如:

a <- c(1,1,1,1,2,2,3,3)
b <- c(1,1,1,3)

我剩余的库存为c(1,2,2,3)

这些无效:

  • setdiff(a,b)返回2
  • a - b迭代减去 向量
  • intersect(a,b)仅返回(1,3),因为重复项是 已删除
  • (a[a %in% intersect(a, b)])返回太多项c(1, 1, 1, 1, 3, 3),因为R包含的任何匹配数字的匹配次数均与其匹配的次数相同。

如何简单地将一个向量中的所有元素从另一个向量中移除,将每一项视为唯一,而不移除重复项?

0 个答案:

没有答案