R语言如何对矩阵中的数字赋值

想使用R语言,将矩阵中每一行的最大值赋值为“1”,其余值赋值为“0”

对矩阵元素按行列遍历,判断是否为最大值,然后替换,参考代码:

m1 <- matrix(c(6,5,8,4,7,8,1,5,3),nrow=3,ncol=3,dimnames=list(c("r1","r2","r3"),c("c1","c2","c3")))
print(m1)
for (i in 1:nrow(m1)){
    ma=max(m1[i,])
    for(j in 1:ncol(m1)){
        if (m1[i,j]==ma){
            m1[i,j]=1
        }
        else{m1[i,j]=0}
    }   

}
print(m1)

运行结果:

c1 c2 c3
r1  6  4  1
r2  5  7  5
r3  8  8  3
   c1 c2 c3
r1  1  0  0
r2  0  1  0
r3  1  1  0