дублировать вектор в матрицу r

Хотите знать, как дублировать вектор в матрицу в R. Например

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

где dup выглядит как rbind(1:10,1:10). Спасибо


person Michael    schedule 17.02.2013    source источник
comment
Напомню: duplicated — это функция, которая находит дубликаты внутри вектора. И, как намекает @thelatemail, R перерабатывает, поэтому вам просто нужно указать, сколько строк требуется вашей матрице, и R автоматически повторит вектор для вас.   -  person Ricardo Saporta    schedule 18.02.2013


Ответы (4)


Я думаю, вы ищете replicate.

t(replicate(2, v))
person Arun    schedule 17.02.2013
comment
стоит отметить читателям, что replicate обычно не используется таким образом; Кроме того, это намного медленнее, чем описанный ниже подход thelatemail. В любом случае +1 за читабельность/элегантность. - person MichaelChirico; 05.12.2016

В качестве альтернативы:

matrix(v, nrow=2, ncol=length(v), byrow=TRUE)
person thelatemail    schedule 18.02.2013
comment
что быстрее, чем транспонирование результата без использования byrow (как я и ожидал) - person MichaelChirico; 05.12.2016

Лично я просто умножаю на единичный вектор..

например, если v является вектор-столбцом: v [1 1] -> [v v]

person Moud    schedule 14.03.2015

Подобно ответу Моуда, но с большей ясностью.

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

Должно быть быстро, но не так элегантно, как некоторые другие ответы.

person Evan Friedland    schedule 08.03.2018