重叠元素的数量

时间:2014-12-09 13:32:34

标签: r vector

我有两个载体:

vec1 <- c(1,0,1,1,1)
vec2 <- c(1,1,0,1,1)

向量在位置1,4和5处具有相同的元素。

如何在考虑位置的2个向量中返回重叠的元素数量?所以,我想在这里返回3号。

2 个答案:

答案 0 :(得分:8)

测试是否相等,然后是sum,您可能希望排除NA s:

sum(vec1==vec2, na.rm=TRUE)

修改 排除0==0个匹配项,添加以下排除项:

sum(vec1==vec2 & vec1!=0, na.rm=TRUE)

感谢@CarlWitthoft

或者,如果你只有1和0,那么:

sum((vec1+vec2)==2, na.rm=TRUE)

答案 1 :(得分:3)

如果您的条目只有0和1(或者如果您只对0和非0的任何内容感兴趣),您可以使用xor确定它们的不同之处,然后将其否定,否则您必须测试是否相等正如@ zx8754所评论的那样:

sum(!xor(vec1,vec2))
[1] 3