R 计算两个向量中相同位置相同元素的数量
我有两个向量:R 计算两个向量中相同位置相同元素的数量,r,R,我有两个向量: set.seed(12) a<-sample(c(0,1),10,replace=T) b<-sample(c(0,1),10,replace=T) > a [1] 0 1 1 0 0 0 0 1 0 0 > b [1] 0 1 0 0 0 0 0 1 1 0 set.seed(12) a b [1] 0 1 0 0 0 0 0 1 1 0 我想计算两个向量中匹配的元素数 因此,在上述情况下: 以下元素匹配:1,2,4,5,6,7,8,10
set.seed(12)
a<-sample(c(0,1),10,replace=T)
b<-sample(c(0,1),10,replace=T)
> a
[1] 0 1 1 0 0 0 0 1 0 0
> b
[1] 0 1 0 0 0 0 0 1 1 0
set.seed(12)
a b
[1] 0 1 0 0 0 0 0 1 1 0
我想计算两个向量中匹配的元素数
因此,在上述情况下:
以下元素匹配:1,2,4,5,6,7,8,10
我不能用集合运算符来实现这一点,因为我对公共元素不感兴趣,但对它们的位置也不感兴趣。尝试使用
which
和=
which(a==b)
#[1] 1 2 4 5 6 7 8 10
以@David Arenburg为例
set.seed(12)
a <- sample(c(0,1),10,replace=TRUE)
b <- sample(c(0,1),10,replace=TRUE)
c <- sample(c(0,1),10,replace=TRUE) # added
which(rowSums(cbind(a,b,c)==a)==3)
#[1] 1 2 5 6
set.seed(12)
a@Andrie抱歉,我提前几秒钟到达:-)如果目标真的是计算两个向量中匹配的元素数,那么让我们建议做sum(a==b)
而不是length(a==b))。
@Pascal非常感谢编辑,我在复制粘贴时没有注意到这一点是我的错。