如果在省略NA的其他矩阵中可用,则保留矩阵行

时间:2017-08-16 10:08:38

标签: r matrix comparison matching

如果行包含在矩阵m2的行中,我找不到仅将行保留在矩阵m1中的有效方法。矩阵m2可以包含NA,其不必与矩阵m1的行匹配。请参阅以下示例:

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列与m2中的第2列匹配(必须省略NA)。此外,矩阵m1保持第2行,因为m1的第2列与m2中的第1列匹配。 理想情况下,不应该使用循环来解决,以保持高性能。它必须运行大型矩阵。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,可能会有以下情况。

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