我需要编写一个函数,通过维度相似的另一个矩阵的相应元素在矩阵中推算NA。 我认为将矩阵视为向量并重构它们可能更简单,但代码无论如何都不起作用。我尝试了以下方法:
impute <-function(x,y){
x<-as.vector(x)
y<-as.vector(y)
for (i in 1:length(x)){
if (isTRUE(is.na(x[i])))
x[i]<-y[i]
}
}
我尝试运行两个小矩阵的函数以跟踪插补,结果矩阵为NULL
> M<-impute(A,B)
> M
NULL
这只是避免处理两个矩阵中的几个指数的替代方法。欢迎使用高效的代码。
答案 0 :(得分:1)
它们的尺寸完全相同吗?
mat <- matrix(1:100, 10, 10)
mat[sample(1:100, 20)] <- NA
mat2 <- matrix(1:100, 10, 10)
inds <- is.na(mat)
mat[inds] <- mat2[inds]
答案 1 :(得分:0)
你为此而嘲笑吗?
mm1[is.na(mm1)] <- mm2[is.na(mm1)]