R中两个向量之间的差异

Difference between two vectors in R

我有两个向量:

a <- c(1, 1, 3, 4, 5, 7, 9)
b <- c(2, 3, 4, 6, 8, 2)

我想在第二个向量中找到第一个向量中没有的数字:

dif <- c(2, 6, 8)

我尝试了很多不同的方法(例如合并、不同类型的连接(dplyr 包)、setdiff、比较(比较包)),但我仍然找不到方法。

您可以使用setdiff

setdiff(b,a)
#[1] 2 6 8

替代setdiff(这可能更可取)的另一种方法是使用%in%

unique(b[! b %in% a])
#[1] 2 6 8

确切的问题已经得到回答,但如果有人想找到两个列表之间不共享的所有元素,那么这就是答案:

union(setdiff(a,b), setdiff(b,a))

此处 'a' 和 'b' 可能类似于

a<-c(1,2,3,4,5)
b<-c(4,5,6,7,8)