【问题标题】:How to combine (add?) 2 same dimension matrices in R?如何在R中组合(添加?)2个相同维度的矩阵?
【发布时间】:2018-06-07 13:50:34
【问题描述】:

我确信有一种非常简单的方法可以做到这一点,但遇到了麻烦。我基本上有两个 8 x 8 的矩阵。它们都有不同的数据,但也有很多空白 (NA)。生成数据的方式在矩阵的同一单元格中不会有不同的答案,所以基本上如果矩阵 1 中的单元格中有数据,那么矩阵 2 中的同一单元格是 na。这是生成这些类型的一些代码例如矩阵:

matrix1 <-structure(list(X1 = c(NA, NA, NA, NA, NA, NA, 0, NA), X2 = c(NA, 
     NA, NA, NA, NA, 1, NA, NA), X3 = c(NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), X4 = c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_
    ), X5 = c(NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
   NA_real_, NA_real_), X6 = c(NA, 0, NA, NA, NA, NA, NA, 0), X7 = c(1, 
      NA, NA, NA, NA, NA, NA, NA), X8 = c(NA, NA, NA, NA, NA, 1, NA, 
             NA)), .Names = c("X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8"
                              ), row.names = c(NA, -8L), class = "data.frame")

matrix2 <- structure(list(X1 = c(NA, NA, NA, 1, NA, 1, NA, NA), X2 = c(NA, 
                 NA, NA, 1, NA, NA, NA, 0), X3 = c(NA_real_, NA_real_, NA_real_, 
                     NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), X4 = c(1, 
                   1, NA, NA, NA, 0, NA, NA), X5 = c(NA_real_, NA_real_, NA_real_, 
                    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), X6 = c(1, 
                     NA, NA, 0, NA, NA, NA, NA), X7 = c(NA_real_, NA_real_, NA_real_, 
                      NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), X8 = c(NA, 
                       0, NA, NA, NA, NA, NA, NA)), .Names = c("X1", "X2", "X3", "X4", 
                     "X5", "X6", "X7", "X8"), row.names = c(NA, -8L), class = "data.frame")

我想将这些矩阵组合成一个 8 x 8 矩阵,其中这两个矩阵的数据点仍然采用 8 x 8 格式。我尝试的大多数事情都以一个全部为 na 的矩阵结束,但应该有一些简单的方法可以做到这一点,我只是想不通。如果您知道这样做的方法,请告诉我,非常感谢您的帮助!

【问题讨论】:

  • 您不必将标题更改为“[已解决]”。只需接受(箭头下方有一个检查)@akrun 的答案,其他人就会认为它已解决。请参阅this link 了解更多信息。

标签: r matrix


【解决方案1】:

我们可以使用pmin(假设非NA位置不重叠)

pmin(matrix1, matrix2, na.rm = TRUE)

或者另一个选项是来自dplyrcoalesce

library(dplyr)
coalesce(matrix1, matrix2)

【讨论】:

    猜你喜欢
    • 2018-04-23
    • 2020-10-27
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 2017-07-26
    • 2016-08-18
    • 2017-07-02
    相关资源
    最近更新 更多