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.