如何分辨一个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)
返回不在y
的x
的元素。
如上所述,这是一个不对称的差异。 举个例子:
> 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))]