2013-02-17 71 views
7

想知道如何複製的載體到基質中R.例如重複載體導入矩陣R

v = 1:10 
dup = duplicate(V,2) 

其中dup看起來像rbind(1:10,1:10)。謝謝

+2

只是個頭:'重複的'是一個函數,它可以在一個向量內找到重複的*。正如@thelatemail所暗示的那樣,「R」可以循環使用,因此您只需指出矩陣需要多少行,而「R」會自動爲您重複向量。 – 2013-02-18 00:18:40

回答

17

我認爲你正在尋找replicate

t(replicate(2, v)) 
+0

值得注意的是,'replicate'通常不是這樣使用的;而且,它比下面的電郵方式慢得多。無論如何+1爲易讀性/優雅。 – MichaelChirico 2016-12-05 04:32:55

16

或者:

matrix(v,nrow=2,ncol=length(v),byrow=TRUE) 
+0

這是比不使用'byrow'轉置結果更快(正如我所料) – MichaelChirico 2016-12-05 04:33:34

0

我個人只是由那些矢量相乘..

,例如,如果v是一個列向量: V [1 1] - > [ vv]

-1

如果使用ftable,可以省略新矩陣的行數

as.matrix(ftable(replicate(2,v))) 
+0

你的回答基本上沒有解釋沒用。 – 2016-01-26 14:37:11

0

與Moud的答案類似,但更清晰一些。

n <- 10 
v <- c(1,4,3,6,4,7,8,1) # random 
t(t(rep(1, n))) %*% v 

應該快但不像其他答案一樣優雅。