2017-02-01 63 views
1

如何生成具有以下行爲的二進制矩陣?我遇到了這個solution,但它缺少二進制值的隨機定位。生成固定數目爲1的二進制矩陣

## all rows contain four 1's at random column 

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 1 1 1 0 0 0 0 0 1  0 
[2,] 0 0 0 1 1 1 0 0 0  1 
[3,] 0 0 0 1 1 0 0 1 1  0 
[4,] 0 1 1 0 0 0 1 0 0  1 
[5,] 0 1 0 1 0 1 0 1 0  0 
+1

'噸(複製(5,樣品(代表(C(1,0),C(4,6))) ,TRUE))'? – A5C1D2H2I1M1N2O1R2T1

+0

就像一個魅力。謝謝! –

+0

如果我想在'2:4'的範圍內爲每一行隨機分配不同數目的'1',那麼怎麼辦?例如'row1'有兩個'1s','row2'有四個'1s'等...... –

回答

1

這可能不是最佳的,但將讓你去:

m<-matrix(data = rep(sample(rep(c(1,0),times=c(4,6))),times=5),byrow = T,nrow = 5,ncol = 10) 
m<-apply(X = m,FUN = sample,MARGIN = 1) 
m<-t(m)