在R中创建一个带循环的矩阵

For*_*ols 1 r matrix

我试图在R中创建一个循环,在每两行中将我的矩阵替换为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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

开始示例矩阵

0   0   0
0   0   0
0   0   0
0   0   0
0   0   0
0   0   0
Run Code Online (Sandbox Code Playgroud)

最终矩阵:

1   0   0
1   0   0
0   1   0
0   1   0
0   0   1
0   0   1
Run Code Online (Sandbox Code Playgroud)

flo*_*del 10

是否需要使用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
Run Code Online (Sandbox Code Playgroud)