如何分辨一个vector而不是另一个vector?

在matlab中,有一种方法可以在一个vector中find值,而在另一个vector中找不到值。

例如:

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

有什么函数可以告诉我, x中不是y是1吗?

你可以使用setdiff()(设置差异)函数:

 > setdiff(x, y) [1] 1 

是。 对于向量,您可以简单地使用%in%运算符或is.element()函数%in%

 > x[!(x %in% y)] 1 

对于一个matrix,有很多不同的方法。 merge()可能是最直接的。 我build议看看这个问题 。

R中用于setdiff,union,intersect,setequal和is.element的帮助文件提供了有关R中标准集函数的信息。

setdiff(x, y)返回不在yx的元素。

如上所述,这是一个不对称的差异。 举个例子:

 > x <- c(1,2,3,4) > y <- c(2,3,4,5) > > setdiff(x, y) [1] 1 > setdiff(y, x) [1] 5 > union(setdiff(x, y), setdiff(y, x)) [1] 1 5 
 x[is.na(match(x,y))]