как связать один и тот же вектор несколько раз?

Как я могу связать один и тот же вектор o = c(1,2,3,4) несколько раз, чтобы получить такую матрицу, как:

o = array(c(1,2,3,4,1,2,3,4,1,2,3,4), dim(c(4,3))
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    2    2    2
[3,]    3    3    3
[4,]    4    4    4

В лучшем случае: o = cbind(o,o,o) и, возможно, более обобщенный (duplicate)? Мне нужно это, чтобы указать цвета для элементов в textplot.

Ответ 1

R. Это очень экологично:

o=c(1,2,3,4) 
> matrix(o,nrow = 4,ncol = 4)
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    2    2    2    2
[3,]    3    3    3    3
[4,]    4    4    4    4

Ответ 2

Вы можете использовать replicate

> o = c(1,2,3,4) 
> replicate(4, o)
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    2    2    2    2
[3,]    3    3    3    3
[4,]    4    4    4    4

Ответ 3

Вы можете использовать внешние

outer(1:4,1:4,function(x,y)x)
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    2    2    2    2
[3,]    3    3    3    3
[4,]    4    4    4    4