On Fri, 27 Jul 2007, Gregory Gentlemen 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.
>
> I'd be grateful for any adive and/or solutions.

Depends on the order of elements in dat.cor. Either

         Rmat <- diag(p)
         Rmat[lower.tri(Rmat)] <- dat.cor
         Rmat[upper.tri(Rmat)] <- t( Rmat )[upper.tri(Rmat)]

or swap 'upper' for 'lower'.


>
> Gregory
>
>
>
>
> ---------------------------------
>
>
>
>
>       [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@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.
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:[EMAIL PROTECTED]                  UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

______________________________________________
R-help@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.

Reply via email to