> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of wendy > Sent: Saturday, February 20, 2010 6:58 PM > To: r-help@r-project.org > Subject: [R] replicate matrix > > > Hi all, > > I have a matrix, for example > [,1] [,2] > [1,] 1 3 > [2,] 4 6 > > I want to replicate the matrix twice and add an extra column > at the end, > which is > [,1] [,2] [,3] [,4] [,5] [,6] [,7] > [1,] 1 3 1 3 1 3 2 > [2,] 4 6 4 6 4 6 5 > > I found 'rep' only works for vector. Does anyone know how to > replicate a > matrix, and append the matrix?
You want to replicate the columns of the matrix so use rep() in a column subscripting expression: x <- matrix(c(1,4,3,6),nrow=2,ncol=2) # setup xRepped <- x[ , rep(seq_len(ncol(x)), 3)] then append the new column with xReppedAppended <- cbind(xRepped, c(2,5)) I avoid the solutions that convert the original matrix to a vector and back to a matrix, like xxx <- matrix(rep(as.vector(x),3), nrow=2) as they make me assume more than I want to assume about how matrices are represented internally. Those solutions also lose any column or row names that my matrix may have had. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > > Thank you in advance, > Wendy > > > -- > View this message in context: > http://n4.nabble.com/replicate-matrix-tp1563337p1563337.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.