R.如何制作具有相等行的矩阵

时间:2012-06-03 01:22:48

标签: r

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

3 个答案:

答案 0 :(得分:7)

有一行

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

答案 1 :(得分: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的情况不同,矩阵的rownames不需要是唯一的。

答案 2 :(得分:3)

这是一种可能性:

mymat <- do.call( rbind, rep(list(f), 10) )