5

我有行f。我想创建矩阵R,使其每一行都相等f。在 R 中最有效的方法是什么?

4

3 回答 3

8

有一排

f=c(1,22,33,44,55,66)

得到它的长度

lf=length(f)

然后制作矩阵

R=matrix(rep(f,lf),
         ncol=lf,
         byrow=T)

给出:

R
     [,1] [,2] [,3] [,4] [,5]
[1,]    1   33   44   55   66
[2,]    1   33   44   55   66
[3,]    1   33   44   55   66
[4,]    1   33   44   55   66
[5,]    1   33   44   55   66
于 2012-06-03T01:55:49.007 回答
5
R <-  matrix(f, 1)[rep(1,n), ]
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    1    2    3    4    5
[3,]    1    2    3    4    5
[4,]    1    2    3    4    5
[5,]    1    2    3    4    5

或者更紧凑:

R <- rbind(f)[rep(1,n), ]
  [,1] [,2] [,3] [,4] [,5]
f    1    2    3    4    5
f    1    2    3    4    5
f    1    2    3    4    5
f    1    2    3    4    5
f    1    2    3    4    5

请注意,矩阵的行名不需要是唯一的,这与 data.frames 的情况不同。

于 2012-06-03T02:47:09.417 回答
3

这是一种可能性:

mymat <- do.call( rbind, rep(list(f), 10) )
于 2012-06-03T02:12:18.177 回答