具有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