我有两个向量

x <- c(1,2,2,3,4)

y <- c(1,2,3)

而且我想获得x中不在y中的元素的另一个向量;因此在这种情况下(2,4)。

我已经尝试过使用setdiff()函数,但这没有考虑重复项(它只会返回4),因此我不确定该如何处理。

谢谢!

最佳答案

也许试试这个:

x[-match(y,x,nomatch = 0)]
nomatch = 0是必需的,以避免将NA与负下标混合。

如评论中所述,要处理其他重复项,另一种选择可能是使用软件包 vecsets 中的vsetdiff:
library(vecsets)
x = c(1, 2, 2, 3, 3, 4)
y = c(1, 2, 2, 3)
> vsetdiff(x,y)
[1] 3 4

关于r - 如何查找一个向量中不在另一个向量中的元素(不使用setdiff),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55696519/

10-12 17:47