[R] How to repeat vectors ?
Gabor Grothendieck
ggrothendieck at gmail.com
Sat Sep 30 13:44:43 CEST 2006
Here are 4 approaches in order from most compact
to least. #1 only works for numeric matrices, # 2 is
a shorter versio of your solution using rep.vec and # 3
is from Alex's post and is likely what I would
use in practice.
m <- matrix(1:4, 2) # test matrix
# 1 - m must be numeric for this one to work
kronecker(m, rep(1,2))
# 2
apply(m, 2, rep, each = 2) # 2
# 3 - from Alex's post
m[rep(1:nrow(m), each = 2),]
# 4
matrix(rbind(c(m), c(m)), nc = ncol(m))
On 9/30/06, Tong Wang <wangtong at usc.edu> 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
> >
>
> ______________________________________________
> R-help at 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.
>
More information about the R-help
mailing list