[R] generating symmetric matrices

Douglas Bates bates at stat.wisc.edu
Mon Jul 30 17:00:16 CEST 2007

On 7/27/07, Gregory Gentlemen <gregory_gentlemen at yahoo.ca> wrote:
> Greetings,

> I have a seemingly simple task which I have not been able to solve today. I want to construct a symmetric matrix of arbtriray size w/o using loops. The following I thought would do it:

> p <- 6
> Rmat <- diag(p)
> dat.cor <- rnorm(p*(p-1)/2)
> Rmat[outer(1:p, 1:p, "<")] <- Rmat[outer(1:p, 1:p, ">")] <- dat.cor

> However, the problem is that the matrix is filled by column and so the resulting matrix is not symmetric.

Could you provide more detail on the properties of the symmetric
matrices that you would like to generate?  It seems that you are
trying to generate correlation matrices.  Is that the case?  Do you
wish the matrices to be a random sample from a specific distribution.
If so, what distribution?

More information about the R-help mailing list