在R中多次cd一个向量

时间:2016-02-26 16:29:47

标签: r

我有一个向量,我想在新矩阵

中使用向量作为列重复n次

即我有一个载体

>vec 
[1] 266 130  86  69  56  39  30  44  33  43

我想生产n次

vec1 vec1
266  266
130  130
86   86
69   69
56   56
39   39
30   30
44   44  
33   33
43   43  .....

我对do.call并不完全熟悉,但您会使用该功能来实现吗?

2 个答案:

答案 0 :(得分:10)

当您创建矩阵时,R会回收矢量,因此您可以执行以下操作:

matrix(vec , length(vec) , n )

其中n是列数/重复次数。

答案 1 :(得分:2)

此处另一个明显的替代方法是使用replicate(尽管matrix应该更有效率):

> vec <- scan()
1: 266 130  86  69  56  39  30  44  33  43
11: 
Read 10 items
> replicate(5, vec)
      [,1] [,2] [,3] [,4] [,5]
 [1,]  266  266  266  266  266
 [2,]  130  130  130  130  130
 [3,]   86   86   86   86   86
 [4,]   69   69   69   69   69
 [5,]   56   56   56   56   56
 [6,]   39   39   39   39   39
 [7,]   30   30   30   30   30
 [8,]   44   44   44   44   44
 [9,]   33   33   33   33   33
[10,]   43   43   43   43   43

或者,您可以采取更加神秘(但可能更快)的方法:

`dim<-`(rep(vec, 5), c(length(vec), 5))