将向量复制到矩阵中的R代码

24

想知道如何在R中将向量复制到矩阵中。例如:

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

其中dup看起来像是rbind(1:10,1:10)。谢谢。


2
提醒一下:duplicated是一个函数,用于在向量内查找重复项。正如@thelatemail所指出的那样,R会进行循环利用,因此您只需要指定矩阵需要多少行,R就会自动为您重复向量。 - Ricardo Saporta
4个回答

36

我认为您正在寻找 复制

t(replicate(2, v))

3
值得注意的是,replicate 通常不用于这种方式;而且它比下面 thelatemail 的方法慢得多。总之,加一分可读性/优雅程度。 - MichaelChirico

33

或者:

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

1
不使用 byrow 来转置结果,比起直接转置会更快(我猜应该是这样的)。 - MichaelChirico

2

就我个人而言,我只是将其乘以一个全为1的向量。

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


0

类似于Moud的回答,但更加清晰易懂。

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

应该很快,但不如其他答案那么优雅。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接