2013-08-28 103 views
1

我試圖在R中創建一個循環,它將每個2行中的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

是否使用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