[R] replicate matrix
William Dunlap
wdunlap at tibco.com
Mon Feb 22 17:43:11 CET 2010
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of wendy
> Sent: Saturday, February 20, 2010 6:58 PM
> To: r-help at 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 at 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.
>
More information about the R-help
mailing list