我不断发现自己需要一个可以将两个集合相减的函数,但是找不到在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包含的任何匹配数字的匹配次数均与其匹配的次数相同。 如何简单地将一个向量中的所有元素从另一个向量中移除,将每一项视为唯一,而不移除重复项?