________________________________________ > From: r-help-boun...@r-project.org [r-help-boun...@r-project.org] On Behalf > Of duncandonutz [dwads...@unm.edu] > Sent: March 19, 2010 1:11 PM > To: r-help@r-project.org > Subject: [R] Merging Matrices > > I have two symmetric matrices, but of different dimensions. The entries are > identified by specific labels some of which are shared by both matrices. I > would like to sum the two matrices, but retain the union of the two. In > other words, I want the result to be the same size as the larger of the two > matrices, but with the entries that they share added together. > > cbind() and rbind() don't work since the matrices are different sizes > (symmetrically). Merge doesn't want to cooperate, although it might be > because I can't understand the documentation. I tried the package "reshape" > but didn't get very far with that either. I tried simply adding (+) them, > but that was a stupid first try.
With appropriate indexing of the matrices via their shared names, it can be done as follows: > A <- matrix(1:9, nrow = 3) > A[lower.tri(A)] <- A[upper.tri(A)] > B <- matrix(1:25, nrow = 5) > B[lower.tri(B)] <- B[upper.tri(B)] > dimnames(A) <- list(letters[c(2, 4, 5)], letters[c(2, 4, 5)]) > dimnames(B) <- list(letters[1:5], letters[1:5]) > A b d e b 1 4 7 d 4 5 8 e 7 8 9 > B a b c d e a 1 6 11 16 21 b 6 7 12 17 22 c 11 17 13 18 23 d 12 18 22 19 24 e 16 21 23 24 25 > B[dimnames(A)[[1]], dimnames(A)[[1]]] b d e b 7 17 22 d 18 19 24 e 21 24 25 > C <- B > C[dimnames(A)[[1]], dimnames(A)[[1]]] <- A + B[dimnames(A)[[1]], > dimnames(A)[[1]]] > C a b c d e a 1 6 11 16 21 b 6 8 12 21 29 c 11 17 13 18 23 d 12 22 22 24 32 e 16 28 23 32 34 > C - B a b c d e a 0 0 0 0 0 b 0 1 0 4 7 c 0 0 0 0 0 d 0 4 0 5 8 e 0 7 0 8 9 > HTH Steve McKinney > Any help is appreciated! > -- > View this message in context: > http://n4.nabble.com/Merging-Matrices-tp1605474p1605474.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org 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. ______________________________________________ R-help@r-project.org 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.