在 R 中,是否有一些简单的方法来进行多集(即“袋子”)差异,类似于setdiff()
,但保留输入向量中的顺序和多重性?
例如,假设x <- c(1,2,2,3,1,5,4,4,5,3)
和y <- c(2,1,5,5)
。我正在寻找bagdiff()
这样一个bagdiff(x,y)
函数,即inc(2,3,1,4,4,3)
元素的第一次出现已被删除,具有多重性。y
x
(在我的实际任务中,我不会真正关心输出的顺序,所以只有多重性正确才重要,但一般的有序情况似乎值得解决。)
在 R 中,是否有一些简单的方法来进行多集(即“袋子”)差异,类似于setdiff()
,但保留输入向量中的顺序和多重性?
例如,假设x <- c(1,2,2,3,1,5,4,4,5,3)
和y <- c(2,1,5,5)
。我正在寻找bagdiff()
这样一个bagdiff(x,y)
函数,即inc(2,3,1,4,4,3)
元素的第一次出现已被删除,具有多重性。y
x
(在我的实际任务中,我不会真正关心输出的顺序,所以只有多重性正确才重要,但一般的有序情况似乎值得解决。)
有一个与您所描述的相近的集合模块。就像是:
library(sets)
gset_difference(as.gset(x), as.gset(y))
# gives
{1 [1], 2 [1], 3 [2], 4 [2]}