簡體   English   中英

在 R 中多次綁定一個向量

[英]cbind a vector multiple times in R

我有一個向量,我想使用該向量作為新矩陣中的列重復 n 次

即我有一個向量

vec <- c(266, 130, 86, 69, 56, 39, 30, 44, 33, 43)
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 並不完全熟悉,但是您會使用該功能來實現這一目標嗎?

R 在創建矩陣時回收向量,因此您可以使用:

matrix( vec , length(vec) , n )

其中n是列數/重復數。

另一個明顯的替代方法是使用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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM