2个向量之间不匹配的值的索引

时间:2018-04-10 05:41:47

标签: r

我有一个向量v1 = c(0,1,0,1,1)和一个向量v2 = c(1,1,0,1,0)。如何返回两个向量之间的值不匹配的索引?

例如:

v1 = c(0,1,0,1,1)
v2 = c(1,1,0,1,0)

预期产出

out_vector = c(1, 5)

索引1和5在向量v1v2

之间不匹配

2 个答案:

答案 0 :(得分:2)

我们可以将2个向量元素与==进行比较,然后使用which获取它们不匹配的索引位置。

which(!v1 == v2)
#[1] 1 5

或更直接的@thelatemail建议

which(v1 != v2)
#[1] 1 5

答案 1 :(得分:2)

与@Ronak使用的方法略有不同,我们也可以将操作视为两个向量之间的按位异或:

v1 = c(0,1,0,1,1)
v2 = c(1,1,0,1,0)

which(xor(v1, v2))
[1] 1 5