[R] How to 'explode' a matrix

Kevin Ummel kevinummel at gmail.com
Wed Jan 5 13:03:34 CET 2011


Hi everyone,

I'm looking for a way to 'explode' a matrix like this:

> matrix(1:4,2,2)
     [,1] [,2]
[1,]    1    3
[2,]    2    4

into a matrix like this:

> matrix(c(1,1,2,2,1,1,2,2,3,3,4,4,3,3,4,4),4,4)
     [,1] [,2] [,3] [,4]
[1,]    1    1    3    3
[2,]    1    1    3    3
[3,]    2    2    4    4
[4,]    2    2    4    4

My current kludge is this:

v1=rep(1:4,each=2,times=2)
v2=v1[order(rep(1:2,each=4,times=2))]
matrix(v2,4,4)

But I'm hoping there's a more efficient solution that I'm not aware of.

Many thanks,
Kevin



More information about the R-help mailing list