Zastanawiasz się, jak powielać wektor do matrycy w R. Na przykładduplikat wektor do macierzy R
v = 1:10
dup = duplicate(V,2)
gdzie dup
wygląda rbind(1:10,1:10)
. Dzięki
Zastanawiasz się, jak powielać wektor do matrycy w R. Na przykładduplikat wektor do macierzy R
v = 1:10
dup = duplicate(V,2)
gdzie dup
wygląda rbind(1:10,1:10)
. Dzięki
Myślę, że szukasz replicate
.
t(replicate(2, v))
warto zauważyć, że "replikacja" zwykle nie jest używana w ten sposób; Ponadto, jest znacznie wolniejszy niż poniższe podejście. W każdym razie +1 pod względem czytelności/elegancji. – MichaelChirico
alternatywnie:
matrix(v,nrow=2,ncol=length(v),byrow=TRUE)
, która jest szybsza niż transpozycja wyniku bez użycia 'byrowa' (jak sądzę, że się spodziewam) – MichaelChirico
osobiście prostu pomnożyć przez jedynek wektora ..
na przykład, gdy v jest wektorem kolumna V [1 1] -> [ vv]
Jeśli używasz ftable można pominąć liczbę wierszy nowej matrycy
as.matrix(ftable(replicate(2,v)))
Twoja odpowiedź jest w zasadzie bezużyteczna bez wyjaśnień. –
Podobny do odpowiedzi Mouda, ale z nieco większą jasnością.
n <- 10
v <- c(1,4,3,6,4,7,8,1) # random
t(t(rep(1, n))) %*% v
Powinien być szybki, ale nie tak elegancki jak niektóre inne odpowiedzi.
Tylko heads up: 'duplicated' to funkcja, która znajduje duplikaty * wewnątrz * wektora. A ponieważ @thelatemail nawiązuje do tego, 'R' przetwarza, a więc po prostu musisz wskazać, ile wierszy wymaga twoja macierz, a' R' automatycznie powtórzy wektor dla ciebie. –