Хотите знать, как дублировать вектор в матрицу в R. Например
v = 1:10
dup = duplicate(V,2)
где dup
выглядит как rbind(1:10,1:10)
. Спасибо
Хотите знать, как дублировать вектор в матрицу в R. Например
v = 1:10
dup = duplicate(V,2)
где dup
выглядит как rbind(1:10,1:10)
. Спасибо
Я думаю, вы ищете replicate
.
t(replicate(2, v))
replicate
обычно не используется таким образом; Кроме того, это намного медленнее, чем описанный ниже подход thelatemail. В любом случае +1 за читабельность/элегантность.
- person MichaelChirico; 05.12.2016
В качестве альтернативы:
matrix(v, nrow=2, ncol=length(v), byrow=TRUE)
byrow
(как я и ожидал)
- person MichaelChirico; 05.12.2016
Лично я просто умножаю на единичный вектор..
например, если v является вектор-столбцом: v [1 1] -> [v v]
Подобно ответу Моуда, но с большей ясностью.
n <- 10
v <- c(1,4,3,6,4,7,8,1) # random
t(t(rep(1, n))) %*% v
Должно быть быстро, но не так элегантно, как некоторые другие ответы.
duplicated
— это функция, которая находит дубликаты внутри вектора. И, как намекает @thelatemail,R
перерабатывает, поэтому вам просто нужно указать, сколько строк требуется вашей матрице, иR
автоматически повторит вектор для вас. - person Ricardo Saporta   schedule 18.02.2013