将基于TRUE/FALSE矩阵的矩阵转换为R?
问题描述:
我有名为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
}
}
}
但是,这是痛苦的缓慢,特别是与大的矩阵。有没有更直接的方法来做到这一点?
答
您可以直接将所有false元素设置为零。
finalmatrix[!originaldata] = 0
答
你可以在originaldata
乘两个矩阵和所有值与FALSE
将变为零。
finalmatrix <- finalmatrix * originaldata