如果行包含在矩阵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后,应该是:
矩阵m1保持第1行,因为m1的第2列与m2中的第2列匹配(必须省略NA)。此外,矩阵m1保持第2行,因为m1的第2列与m2中的第1列匹配。 理想情况下,不应该使用循环来解决,以保持高性能。它必须运行大型矩阵。 谢谢你的帮助!
答案 0 :(得分:0)
如果我理解正确,可能会有以下情况。
inx <- m1[, 1] %in% m2[, 1] | m1[, 2] %in% m2[, 2]
m1[inx, ]
[,1] [,2]
[1,] 1 2
[2,] 3 4