我有两个载体:
vec1 <- c(1,0,1,1,1)
vec2 <- c(1,1,0,1,1)
向量在位置1,4和5处具有相同的元素。
如何在考虑位置的2个向量中返回重叠的元素数量?所以,我想在这里返回3号。
答案 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