在matlab中,有一種方法可以在一個矢量中找到值,但在另一個矢量中找不到值。如何判斷一個矢量是什麼而不是另一個?
例如:
x <- c(1,2,3,4)
y <- c(2,3,4)
是那裏會告訴我,在x
這不是在y
值爲1的任何功能?
在matlab中,有一種方法可以在一個矢量中找到值,但在另一個矢量中找不到值。如何判斷一個矢量是什麼而不是另一個?
例如:
x <- c(1,2,3,4)
y <- c(2,3,4)
是那裏會告訴我,在x
這不是在y
值爲1的任何功能?
可以使用setdiff()(設定差)函數:
> setdiff(x, y)
[1] 1
是的。對於載體,您可以簡單地使用%in%
運算符或is.element()
函數。
> x[!(x %in% y)]
1
對於一個矩陣,有很多不同的方法。 merge()
可能是最直接的。我建議looking at this question for that scenario。
R中的幫助文件中setdiff, union, intersect, setequal, and is.element R.提供的標準集的功能的信息
setdiff(x, y)
返回的元素x
不在y
。
如上所述,這是一個不對稱的區別。 因此,例如:
> 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
幾乎沒有信息。 – ddunn801 2017-10-05 18:58:25
@ ddunn801我認爲很高興知道一般幫助文件,但我添加了一些更多的信息,使其更有用。 – 2017-10-05 22:57:10
x[is.na(match(x,y))]
WATCHOUT:'setdiff(X,Y)'和'setdiff(Y,X)'是不一樣的。 – 2017-02-21 08:36:25