[R] generating symmetric matrices
    Charles C. Berry 
    cberry at tajo.ucsd.edu
       
    Mon Jul 30 18:39:29 CEST 2007
    
    
  
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 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.
>
Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901
    
    
More information about the R-help
mailing list