【问题标题】:R keep rows of matrix if available in other matrix omitting NAs如果在其他矩阵中可用,则 R 保留矩阵行,省略 NA
【发布时间】:2017-08-16 10:08:37
【问题描述】:

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

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 列匹配。 理想情况下,不应该使用循环来解决它以保持高性能。它必须运行大型矩阵。 感谢您的帮助!

【问题讨论】:

    标签: r matrix comparison matching


    【解决方案1】:

    如果我理解正确,也许下面的就可以了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多