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