2017-08-16 79 views
0

如果行包含在矩陣m2的行中,我無法找到只保留矩陣m1中的行的有效方法。矩陣m2可以包含不需要與矩陣m1的行匹配的NA。請看下面的例子:R保留矩陣的行,如果在其他矩陣中可用,省略NA

m1 = matrix(c(1:6), ncol=2, byrow = T) 
m2 = matrix(c(NA, 4, NA, 2), ncol=2, byrow=T) 

運行代碼M1後一個應該是:

enter image description here

矩陣M1保持第1行,因爲M1的第2列中平方米匹配柱2( NA必須省略)。此外,由於m1的第2列與m2中的第1列相匹配,所以矩陣m1保留第2行。 理想情況下,它不應該用循環來解決,以保持高性能。它必須運行大型矩陣。 感謝您的幫助!

回答

0

如果我理解正確,也許下面會做。

inx <- m1[, 1] %in% m2[, 1] | m1[, 2] %in% m2[, 2] 
m1[inx, ] 
    [,1] [,2] 
[1,] 1 2 
[2,] 3 4