我有两个向量
x <- c(1,2,2,3,4)
y <- c(1,2,3)
Run Code Online (Sandbox Code Playgroud)
而且我想获得x中不在y中的元素的另一个向量;因此在这种情况下(2,4)。
我已经尝试过使用setdiff()函数,但这没有考虑重复项(它只会返回4),因此我不确定该如何处理。
谢谢!
也许试试这个:
x[-match(y,x,nomatch = 0)]
Run Code Online (Sandbox Code Playgroud)
的nomatch = 0,以避免与负下标混合的NA是必要的。
如注释中所述,要处理其他重复项,另一个选项可能是vsetdiff从vecsets包中使用:
library(vecsets)
x = c(1, 2, 2, 3, 3, 4)
y = c(1, 2, 2, 3)
> vsetdiff(x,y)
[1] 3 4
Run Code Online (Sandbox Code Playgroud)