[R] create one bigger matrix with one smaller matrix

Bert Gunter bgunter.4567 at gmail.com
Thu Dec 31 22:31:20 CET 2015


Well, all of the solutions proposed are a bit tricky in that the
matrix must be "constructed" by hand. They are also reinventing
wheels. What I think you really want is the kronecker product, which
is the matrix operation that does exactly what you want. e.g.

A <- matrix(1:4, nr=2)

to create a new matrix with e.g. 2 x 6 "positions" in each of which is
A, simply do

kronecker (matrix(1, nr = 2, nc=6), A)

or if you want to use the operator form:

matrix(1,nr=2, nc=6) %x% A

See ?kronecker
Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Thu, Dec 31, 2015 at 12:28 PM, Kathryn Lord
<kathryn.lord2000 at gmail.com> wrote:
> Dear R users,
>
> Suppose that I have a matrix A
>
> A <- matrix(c(1,2,3,4),2,2)
>> A
>      [,1] [,2]
> [1,]    1    3
> [2,]    2    4
>
> With this matrix A, I'd like to create bigger one, for example,
>
>       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
> [,14]
>  [1,]    1    3    1    3    1    3    1    3    1     3     1     3
> 1     3
>  [2,]    2    4    2    4    2    4    2    4    2     4     2     4
> 2     4
>  [3,]    1    3    1    3    1    3    1    3    1     3     1     3
> 1     3
>  [4,]    2    4    2    4    2    4    2    4    2     4     2     4
> 2     4
>  [5,]    1    3    1    3    1    3    1    3    1     3     1     3
> 1     3
>  [6,]    2    4    2    4    2    4    2    4    2     4     2     4
> 2     4
>  [7,]    1    3    1    3    1    3    1    3    1     3     1     3
> 1     3
>  [8,]    2    4    2    4    2    4    2    4    2     4     2     4
> 2     4
>  [9,]    1    3    1    3    1    3    1    3    1     3     1     3
> 1     3
> [10,]    2    4    2    4    2    4    2    4    2     4     2     4
> 2     4
> [11,]    1    3    1    3    1    3    1    3    1     3     1     3
> 1     3
> [12,]    2    4    2    4    2    4    2    4    2     4     2     4
> 2     4
> [13,]    1    3    1    3    1    3    1    3    1     3     1     3
> 1     3
> [14,]    2    4    2    4    2    4    2    4    2     4     2     4
> 2     4
>
>
> In fact, I want much bigger one. I wonder if there is an elegant way to do
> this?
>
> Any suggestions? Thank you!
>
> Best wishes and Happy new year
>
> Kathie
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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