查找字符串不是%in%其他字符串向量

时间:2013-04-05 22:43:16

标签: r

如果你有一个字符串向量,你想知道哪个匹配。使用%in%是一件简单的事情。

x <- c("red","blue","green")
y <- c("yellow","blue","orange")

which(x %in% y) # Literally, which X are in Y.

但相反,你想在哪里找到哪些X不在Y?

2 个答案:

答案 0 :(得分:8)

我喜欢的一种巧妙的方式(我从@joran,iirc那里学到的)是:

`%nin%` <- Negate(`%in%`)
which(x %nin% y)
[1] 1 3    

答案 1 :(得分:5)

执行%in%会返回一个真实和虚假的向量。使用感叹号将转换那些Ts和Fs,并通过将所有内容包装在which中将为您提供索引。

> which(!x %in% y)
[1] 1 3
> which(x %in% y)
[1] 2