有一个矩阵A,如:
[,1] [,2] [,3] [,4]
[1,] 121 114 117 200
[2,] 312 215 78 211
[3,] 413 121 719 117
[4,] 511 615 428 212
[5,] 616 816 114 223
[6,] 117 428 121 211
和矩阵B类似:
[,1] [,2]
[1,] 117 121
我想只获取A中的行,其中B的每一行都存在于A行中。结果应为:
1. row [1]
2. row [3]
3. row [6]
答案 0 :(得分:2)
A[apply(A, 1, function(x) all(B[1,] %in% x)),]
# [,1] [,2] [,3] [,4]
#[1,] 121 114 117 200
#[2,] 413 121 719 117
#[3,] 117 428 121 211
答案 1 :(得分:1)
我认为这不是最优雅的方式,但它有效!
rows<-vector()
j<-1
for(i in 1:nrow(A)){
temp<-A[i,]
aux<- which(B %in% temp)
if(length(aux)!=0){
rows[j]<-i
j<-j+1
}
}