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
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 <wangtong at usc.edu>
Date: Friday, September 29, 2006 11:23 pm
Subject: How to repeat vectors ?
To: r-help at 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
>
Maybe this one?> MyMatrix <- matrix(1:4, nrow=2)> MyMatrix[,1] [,2] [1,] 1 3 [2,] 2 4> MyMatrix[rep(seq(nrow(MyMatrix)), each=2), ][,1] [,2] [1,] 1 3 [2,] 1 3 [3,] 2 4 [4,] 2 4 HTH, Adrian On Saturday 30 September 2006 09: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 <wangtong at usc.edu> > Date: Friday, September 29, 2006 11:23 pm > Subject: How to repeat vectors ? > To: r-help at 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-- Adrian DUSA Arhiva Romana de Date Sociale Bd. Schitu Magureanu nr.1 050025 Bucuresti sectorul 5 Romania Tel./Fax: +40 21 3126618 \ +40 21 3120210 / int.101