2015-10-13 156 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