[R] Generate Binary Matrix

ken knoblauch ken.knoblauch at inserm.fr
Wed Apr 9 23:16:31 CEST 2014

Doran, Harold <HDoran <at> air.org> writes:
> I am trying to generate a binary matrix where 
in the matrix is guaranteed to have at 
least one 1.
> Ideally, I would like most rowSums  to be equal 
 2 or 3 
with some 1s and some 4s. But, 
rowSums cannot be equal
> to 0.
> I can tinker with the vector of probability weights, 
but in 
 so (in the way I am doing it) this 
causes for
> more rowSums to be equal to 4 than I ideally would 
, but this never helps to guarantee a 
rowSum will not be
> equal to 0. I could post-hoc tinker with any rows 
 are all 
0, but seems like that may be just 
> Below is sample code, any ideas on how to best 
tackle this?
> Harold
> dimMat <- matrix(0, 1000, 4)
> for(i in 1:1000){
>     dimMat[i, ] <- sample(c(0,1), 4, replace = TRUE, prob = c(.3, .7))
>                 }
> table(rowSums(dimMat))

Wht don't you sample from the distribution of row sums 
for each row and then distribute that many 1's randomly
among the columns.


More information about the R-help mailing list