2015-10-13 153 views
0

我有名爲originaldata的真值和假值的矩陣。另一個X測量矩陣叫做finalmatrix。爲了在最後的矩陣只有在originaldata TRUE,並設置爲0,其餘的值保存,我做了下面的循環將基於TRUE/FALSE矩陣的矩陣轉換爲R?

for (row in 1:sqrt(length(finalmatrix))) 
{ 
    for (col in 1:sqrt(length(finalmatrix))) 
    { 
     if (originaldata[row,col] == FALSE) { 
     finalmatrix[row,col] <- 0 
     } 
    } 
} 

但是,這是痛苦的緩慢,特別是與大的矩陣。有沒有更直接的方法來做到這一點?

回答

1

您可以直接將所有false元素設置爲零。

finalmatrix[!originaldata] = 0 
1

你可以在originaldata乘兩個矩陣和所有值與FALSE將變爲零。

finalmatrix <- finalmatrix * originaldata