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

时间:2013-08-28 18:28:28

标签: r matrix

我试图在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

1 个答案:

答案 0 :(得分: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