我有一个向量,我想在新矩阵
中使用向量作为列重复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并不完全熟悉,但您会使用该功能来实现吗?
答案 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))