A bit kludgey but how about:

dimMat <- matrix(0, 1000, 4)
for(i in 1:1000){
while(sum(dimMat[i, ] <- sample(c(0,1), 4, replace = TRUE, prob = c(.3, .7)))==0) 
dimMat[i, ] <- sample(c(0,1), 4, replace = TRUE, prob = c(.3, .7))
}
table(rowSums(dimMat))


Clint Bowman                    INTERNET:       cl...@ecy.wa.gov
Air Quality Modeler             INTERNET:       cl...@math.utah.edu
Department of Ecology           VOICE:          (360) 407-6815
PO Box 47600                    FAX:            (360) 407-7534
Olympia, WA 98504-7600

        USPS:           PO Box 47600, Olympia, WA 98504-7600
        Parcels:        300 Desmond Drive, Lacey, WA 98503-1274

On Wed, 9 Apr 2014, ken knoblauch wrote:

Doran, Harold <HDoran <at> air.org> writes:
I am trying to generate a binary matrix where
row
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
inefficient.

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.

Ken

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to