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

1 つの可能性を次に示します。

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