2013-08-28 7 views
1

J'essaye de créer une boucle dans R, qui remplacent ma matrice le 0 par 1 sur chaque 2 lignes, mais je peux juste créer une matrice avec le numéro 1. Je ne savoir comment l'implémenter vite et bien!Créer une matrice avec boucle dans R

Code 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 
     } 
    } 
} 

départ exemple matrice

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

matrice finale:

1 0 0 
1 0 0 
0 1 0 
0 1 0 
0 0 1 
0 0 1 
+0

Essayez-vous simplement de créer la matrice finale? Parce qu'il existe des moyens beaucoup plus simples et efficaces de créer la matrice finale. –

+0

il ressemble à ceci est que vous reformulez cette question: http://stackoverflow.com/questions/18494201/add-1000-constraints-in-linear-programing-using-r-lpsolve –

Répondre

10

Est-il une obligation d'utiliser une boucle for? R fonctionne mieux en utilisant des instructions vectorisées, par exemple:

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 pour cette réponse. Intelligent! – Mayou

Questions connexes