Solution: m[rep(1:nrow(m),each=2),]
Explanation: There is a simple and effective way to do this, using array slices. for your input matrix, m: > m=matrix(paste("a",c(11,12,21,22),sep=""),2) > m [,1] [,2] [1,] "a11" "a21" [2,] "a12" "a22" you want to create [,1] [,2] [1,] "a11" "a21" [2,] "a11" "a21" [3,] "a12" "a22" [3,] "a12" "a22" First, let's just consider the simpler problem of vectors - taking the first column as an example: > v=m[,1] > v [1] "a11" "a12" and you want: [1] "a11" "a11" "a12" "a12" which is the first element, followed by another copy of the first, and then the second, followed by another copy of the second, ie: > v[c(1,1,2,2)] [1] "a11" "a11" "a12" "a12" can we generate the sequence c(1,1,2,2) automatically? yes: > rep(c(1,2),each=2) [1] 1 1 2 2 or: > rep(1:length(v),each=2) [1] 1 1 2 2 So let's apply that to the vector: > v[rep(1:length(v),each=2)] [1] "a11" "a11" "a12" "a12" Going back to the matrix, we can see that we want to do the same thing, but to the rows of the matrix, instead of the elements of the vector: Instead of length, we use nrow, and we use the row specifier [r,] > m[rep(1:nrow(m),each=2),] [,1] [,2] [1,] "a11" "a21" [2,] "a11" "a21" [3,] "a12" "a22" [4,] "a12" "a22" -Alex On 30 Sep 2006, at 07:33, Tong Wang wrote: > I just figured out a way to do this: > rep.vec <- function(X,n) return(t(array(rep(X,n),c > (length(X),n)))) > > Then, apply(MyMatrix, 2, rep.vec,2) > > Is there a better way ? Is there an internal function to repeat a > vector or matrix ? > > Thanks a lot. > > > ----- Original Message ----- > From: Tong Wang <[EMAIL PROTECTED]> > Date: Friday, September 29, 2006 11:23 pm > Subject: How to repeat vectors ? > To: r-help@stat.math.ethz.ch > >> Hi, >> If I have a matrix , say a11 a12 >> a21 a22 >> Is there a routine to get: a11 a12 >> a11 a12 >> a21 a22 >> a21 a22 >> >> Thanks a lot for any help. >> >> best >> > > ______________________________________________ > 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. ______________________________________________ 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.