我想有效地比较两个集合并使用setdiff和intersect函数,但是没有按照我想要的方式工作。我想比较两组的元素,看看哪些元素是不同的。
例如:
Aset = c("AAAAA", "AABBB", "AAABB", "BBBBB")
Bset = c("AAABB" ,"AAABB", "BBBAA", "BBBBB")
# present in Aset but not in Bset
setdiff(Aset, Bset)
[1] "AAAAA" "AABBB"
#present in Bset but not in Aset
setdiff(Bset, Aset)
[1] "BBBAA"
# both in Aset in Bset
intersect (Aset, Bset)
[1] "AAABB" "BBBBB"
然而,当我重复值时,这会将其视为一个元素(在数学上是正确的),但我想看看有多少元素匹配而不考虑重复。
Cset = c("AAAAA", "BBBBB", "AAABB", "BBBBB")
Dset = c("AAABB" ,"AAABB", "ABBBB", "BBBBB")
# present in Aset but not in Bset
setdiff(Cset, Dset)
[1] "AAAAA"
在Dset中设置Cset还有一个BBBB。所以我想要一个可以考虑重复值的替代函数,并给出类似的东西:
[1] "AAAAA" "BBBBB"
交叉也显示类似的行为(根据定义更正)。
Eset = c("AAAAA", "BBBBB", "AAAAA", "BBBBB")
Fset = c("BBBBB" ,"AAAAA", "BBBBB", "AAAAA")
intersect (Eset, Fset)
[1] "AAAAA" "BBBBB"
我希望看到所有四个都匹配。
[1] "AAAAA" "BBBBB" "AAAAA" "BBBBB"
寻找符合我需要的替代功能 ..