【问题标题】:Combine matrix of same dimension合并相同维度的矩阵
【发布时间】:2018-04-23 18:18:21
【问题描述】:

我有两个相同维度的矩阵,其中填充了 NA 和字符串。例如,

structure(c("Y1", "Y1", "Y1", NA, NA, NA, NA, NA, NA, NA, NA, 
NA, "Y1", "Y1", "Y1", "Y2", NA, "Y2", NA, NA, NA, NA, NA, NA, 
"Y1", "Y1", "Y1", "Y2", NA, "Y2", NA, NA, NA, NA, NA, NA, NA, 
NA, NA, "Y2", NA, "Y2", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Y2", NA, "Y2", NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Dim = c(12L, 
12L))

structure(c("Y1", "Y1", "Y1", NA, NA, NA, NA, NA, NA, NA, NA, 
NA, "Y1", "Y1", "Y1", NA, NA, NA, NA, NA, NA, NA, NA, NA, "Y1", 
"Y1", "Y1", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Y2", "Y2", 
"Y2", NA, "Y2", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, "Y2", "Y2", "Y2", NA, "Y2", NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Dim = c(12L, 
12L))

我想结合这两个矩阵。生成的矩阵将与它们具有相同的维度,并且元素应如下所示:

 [,1]   [,2]   [,3]   [,4]   [,5] [,6]   [,7] [,8] [,9] [,10] [,11] [,12]
 [1,] "Y1"   "Y1"   "Y1"   ""     ""   ""     ""   ""   ""   ""    ""    ""   
 [2,] "Y1"   "Y1"   "Y1"   "Y2"   ""   "Y2"   ""   ""   ""   ""    ""    ""   
 [3,] "Y1"   "Y1"   "Y1"   "Y2"   ""   "Y2"   ""   ""   ""   ""    ""    ""   
 [4,] ""     "Y2"   "Y2"   "Y2"   ""   "Y2"   ""   ""   ""   ""    ""    ""   
 [5,] ""     ""     ""     ""     ""   ""     ""   ""   ""   ""    ""    ""   
 [6,] ""     "Y2"   "Y2"   "Y2"   ""   "Y2"   ""   ""   ""   ""    ""    ""   
 [7,] ""     ""     ""     ""     ""   ""     ""   ""   ""   ""    ""    ""   
 [8,] ""     ""     ""     ""     ""   ""     ""   ""   ""   ""    ""    ""   
 [9,] ""     ""     ""     ""     ""   ""     ""   ""   ""   ""    ""    ""   
[10,] ""     ""     ""     ""     ""   ""     ""   ""   ""   ""    ""    ""   
[11,] ""     ""     ""     ""     ""   ""     ""   ""   ""   ""    ""    ""   
[12,] ""     ""     ""     ""     ""   ""     ""   ""   ""   ""    ""    ""   

【问题讨论】:

    标签: r matrix data-manipulation


    【解决方案1】:

    对于名为 mat1 和 mat2 的矩阵,使用逻辑索引。特别是,使用

    mat1[is.na(mat1)] <- mat2[is.na(mat1)]
    

    返回

    mat1
          [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
     [1,] "Y1" "Y1" "Y1" NA   NA   NA   NA   NA   NA   NA    NA    NA   
     [2,] "Y1" "Y1" "Y1" "Y2" NA   "Y2" NA   NA   NA   NA    NA    NA   
     [3,] "Y1" "Y1" "Y1" "Y2" NA   "Y2" NA   NA   NA   NA    NA    NA   
     [4,] NA   "Y2" "Y2" "Y2" NA   "Y2" NA   NA   NA   NA    NA    NA   
     [5,] NA   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA    NA   
     [6,] NA   "Y2" "Y2" "Y2" NA   "Y2" NA   NA   NA   NA    NA    NA   
     [7,] NA   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA    NA   
     [8,] NA   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA    NA   
     [9,] NA   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA    NA   
    [10,] NA   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA    NA   
    [11,] NA   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA    NA   
    [12,] NA   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA    NA
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      • 2021-05-25
      • 2012-04-27
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多