> -----Original Message----- > From: Marc Schwartz [mailto:marc_schwa...@me.com] > Sent: Monday, August 24, 2009 9:57 AM > To: Daniel Nordlund > Cc: r help > Subject: Re: [R] Combining matrices > > > On Aug 24, 2009, at 11:46 AM, Marc Schwartz wrote: > > > > > On Aug 24, 2009, at 11:16 AM, Daniel Nordlund wrote: > > > >> If I have two matrices like > >> > >> x <- matrix(rep(c(1,2,3),3),3) > >> y <- matrix(rep(c(4,5,6),3),3) > >> > >> How can I combine them to get ? > >> > >> 1 1 1 4 4 4 > >> 1 1 1 5 5 5 > >> 1 1 1 6 6 6 > >> 2 2 2 4 4 4 > >> 2 2 2 5 5 5 > >> 2 2 2 6 6 6 > >> 3 3 3 4 4 4 > >> 3 3 3 5 5 5 > >> 3 3 3 6 6 6 > >> > >> The number of rows and the actual numbers above are unimportant, > >> they are given so as to illustrate how I want to combine the > >> matrices. I.e., I am looking for a general way to combine the > >> first row of x with each row of y, then the second row of x with > >> y, .... > >> > >> Thanks, > >> > >> Dan > > > > > > > > nr.x <- nrow(x) > > nr.y <- nrow(y) > > > > > cbind(x[rep(1:nr.x, each = nr.x), ], y[rep(1:nr.y, nr.y), ]) > > [,1] [,2] [,3] [,4] [,5] [,6] > > [1,] 1 1 1 4 4 4 > > [2,] 1 1 1 5 5 5 > > [3,] 1 1 1 6 6 6 > > [4,] 2 2 2 4 4 4 > > [5,] 2 2 2 5 5 5 > > [6,] 2 2 2 6 6 6 > > [7,] 3 3 3 4 4 4 > > [8,] 3 3 3 5 5 5 > > [9,] 3 3 3 6 6 6 > > > > Actually, correction...that will work in this case, but in > the general > case, I believe that it needs to be: > > x <- matrix(rep(c(1,2,3),3),3) > y <- matrix(rep(c(4,5,6,7),3),4) > > > x > [,1] [,2] [,3] > [1,] 1 1 1 > [2,] 2 2 2 > [3,] 3 3 3 > > > y > [,1] [,2] [,3] > [1,] 4 4 4 > [2,] 5 5 5 > [3,] 6 6 6 > [4,] 7 7 7 > > > nr.x <- nrow(x) > nr.y <- nrow(y) > > > > cbind(x[rep(1:nr.x, each = nr.y), ], y[rep(1:nr.y, nr.x), ]) > [,1] [,2] [,3] [,4] [,5] [,6] > [1,] 1 1 1 4 4 4 > [2,] 1 1 1 5 5 5 > [3,] 1 1 1 6 6 6 > [4,] 1 1 1 7 7 7 > [5,] 2 2 2 4 4 4 > [6,] 2 2 2 5 5 5 > [7,] 2 2 2 6 6 6 > [8,] 2 2 2 7 7 7 > [9,] 3 3 3 4 4 4 > [10,] 3 3 3 5 5 5 > [11,] 3 3 3 6 6 6 > [12,] 3 3 3 7 7 7 > > > We need to replicate each row by the number of rows in the > other matrix. > > HTH, > > Marc >
Thanks to all who responded (including those off-list). I now have options to apply to solving my programming task. Thanks, Dan ______________________________________________ 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.