2013-08-28 2 views
1

저는 R을 사용하여 루프를 만들려고합니다. 즉, 내 행렬을 0으로 1 씩 바꾸고, 두 행을 으로 바꾸지 만, 1 행렬을 만들 수는 있습니다. 신속하고 올바르게 구현하는 방법을 알아야합니다!루프가있는 행렬을 만들려면 R

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

최종 매트릭스를 만들려고하십니까? 최종 행렬을 만드는 데 훨씬 간단하고 효율적인 방법이 있기 때문입니다. –

+0

이 질문에 대한 답은 다음과 같습니다. http://stackoverflow.com/questions/18494201/add-1000-constraints-in-linear-programing-using-r-lpsolve –

답변

10

IT는 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 
+0

+1 답변입니다. 영리한! – Mayou