[R] randomize a matrix
Giovanni Petris
GPetris at uark.edu
Fri Oct 20 16:53:28 CEST 2006
Cameron,
In your example, I think P is the only matrix with 0-1 entries that
has the given row and column sums.
In general, I would solve the problem simulating a Markov Chain. Start
from a given incidence matrix A and iterate the following steps:
(1) select two rows, a, b, and two columns, i, j, at random.
(2) If A[c(a,b), c(i,j)] is of one of the forms
1 0 or 0 1
0 1 1 0
then set it to the other, i.e. set
A[c(a,b), c(i,j)] <- A[c(b,a), c(i,j)].
After sufficiently many iterations, A will have a uniform
distribution.
Giovanni
> Date: Thu, 19 Oct 2006 15:49:55 -0400
> From: "Guenther, Cameron" <Cameron.Guenther at MyFWC.com>
> Sender: r-help-bounces at stat.math.ethz.ch
> Precedence: list
> Thread-topic: [R] randomize a matrix
> Thread-index: Acbzt8BjJUXZEHZgQNaMi9gYYuh3Sg==
>
> Hello everyone,
>
> If I have an incidence matrix of 0 and 1's
>
> P=[1 1 1 1 1 1
> 1 1 1 1 0 0
> 1 1 1 0 0 0
> 1 1 1 0 0 0
> 1 1 0 0 0 0]
>
> I want to create a new uniform random matrix [a] that is filled with 0's
> and 1's but constrained so that the row and column sums are the same as
> in [P]. Does anyone know how to accomplish this?
>
> Thanks in advance
>
> Cameron Guenther, Ph.D.
> Associate Research Scientist
> FWC/FWRI, Marine Fisheries Research
> 100 8th Avenue S.E.
> St. Petersburg, FL 33701
> (727)896-8626 Ext. 4305
> cameron.guenther at myfwc.com
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
>
>
--
__________________________________________________
[ ]
[ Giovanni Petris GPetris at uark.edu ]
[ Department of Mathematical Sciences ]
[ University of Arkansas - Fayetteville, AR 72701 ]
[ Ph: (479) 575-6324, 575-8630 (fax) ]
[ http://definetti.uark.edu/~gpetris/ ]
[__________________________________________________]
More information about the R-help
mailing list