r语言 - 将一个矩阵的内容放在 NULL 位置(列出内容)

  • 本文关键字:NULL 位置 r语言 一个 r matrix merge
  • 更新时间 :
  • 英文 :


具有m1(矩阵 1):

[,1]
200
NULL
NULL
300
NULL
NULL
400
NULL
NULL

m2

 [,1]
    1
    2
    3
    4
    5
    6

我们希望获得以下结果:

 [,1]
    200
    1
    2
    300
    3
    4
    400
    5
    6

因此,m2 的任何元素都必须适合 m1 的空位置。合并、加入、追加...显然不起作用,除非对该案有论据。

m1<-matrix(c(200,NA,NA,300,NA,NA,400,NA,NA), nrow = 9, ncol = 1) #I usually get NULL values in my code results
m2<-matrix(c(1,2,3,4,5,6), nrow = 6, ncol = 1)

欢迎和奖励任何想法!

似乎matrix元素是list元素。 因此,我们需要使用 Map 遍历各个元素(以替换第二个矩阵中的相应值)

m1[] <- Map(function(x, y) {x[is.null(x)] <- y; x}, m1, m2)

更新

根据OP帖子中显示的带有NA s的示例,"m2"长度可能等于"m1"中NULL元素的数量。 在这种情况下,我们可以根据通过循环 'm1' 元素创建的逻辑索引进行分配

m1[sapply(m1, is.null)] <- m2

最新更新