“which”和“%in%”的奇怪行为?

时间:2015-10-01 08:22:15

标签: r

也许,这是一个愚蠢的问题,但我无法实现答案。我有两个包含字符串的向量'a'和'b'。有些字符串在两者之间很常见。但是,如果我这样做:

x <- length(which(a %in% b)) 
y <- length(which(b %in% a))

然后x不等于y。任何人都可以解释原因吗?

提前致谢!!!。

1 个答案:

答案 0 :(得分:4)

我相信你的至少一个载体中有重复的字符串。

示例:

a <- c("a", "a")
b <- c("a", "b")

which(a %in% b) # 1 2 (length 2)
which(b %in% a) # 1 (length 1)

如果你想知道两个向量之间的共同元素而没有重复,弄乱了答案,你可以使用函数intersect

intersect(a, b) # equal to intersect(b, a)
[1] "a"