Dear Yann,

Whether you can do this depends upon what you mean. If you mean randomly
permute the elements of the matrix preserving row and column sums, then this
generally won't be possible. Consider, e.g., matrix(1:4, 2, 2). 

If you mean generate a matrix with specified row and column sums but
randomly sampled elements, then it should be possible to do it. For example,
if all elements are positive, you can generate a matrix with unconstrained
random elements and then make them match the required row and column sums by
iterative proportional fitting. The loglin function in the MASS package will
do this: loglin(X, list(1, 2), fit=TRUE)$fit (where your original matrix
with random elements is X).

If there are negative elements, then you could add a constant, adjust as
above, and subtract the constant.

I hope this helps,
 John

--------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox 
-------------------------------- 

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Yann Clough
> Sent: Wednesday, February 09, 2005 6:08 AM
> To: [email protected]
> Subject: [R] randomisation
> 
> Dear useRs
> 
> I am looking for a way to randomise the values within a matrix:
> the conditions are that the sums of the rows and the sums of 
> the columns should remain the same as in the original matrix.
> 
> Any help would be appreciated
> Cheers
> 
> Yann
> 
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to