簡體   English   中英

如何用另一個矩陣的匹配元素替換一個矩陣的元素

[英]How to replace elements of a matrix with matching elements of another matrix

我需要編寫一個函數,該函數通過尺寸相似的另一個矩陣的相應元素來估算矩陣中的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

這只是避免處理來自兩個矩陣的多個索引的替代方法。 歡迎使用有效且有效的代碼。

它們的尺寸完全相同嗎?

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]

您是否在尋找這個?

mm1[is.na(mm1)] <- mm2[is.na(mm1)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM