繁体   English   中英

在R中使用循环创建矩阵

[英]Create a matrix with loop in R

我试图在R中创建一个循环,将矩阵中的2行中的0替换为1,但是我只能创建一个编号为1的矩阵。我不知道如何快速正确地实现它!

R代码

i<-1
r<-1
l<-1
repeat{
    while(i<3){
        if(l<7) {
            r<-rbind(r,1) 
            l<-l+1
        }else{
            r<-cbind(r,1)
            i<-i+1
            l<-1
        }
    }
}

开始示例矩阵

0   0   0
0   0   0
0   0   0
0   0   0
0   0   0
0   0   0

最终矩阵:

1   0   0
1   0   0
0   1   0
0   1   0
0   0   1
0   0   1

是否需要使用for循环? R使用向量化语句的效果最佳,例如:

diag(3)[rep(1:3, each = 2), ]

#      [,1] [,2] [,3]
# [1,]    1    0    0
# [2,]    1    0    0
# [3,]    0    1    0
# [4,]    0    1    0
# [5,]    0    0    1
# [6,]    0    0    1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM