我有行f
。我想创建矩阵R
,使其每一行都相等f
。在 R 中最有效的方法是什么?
问问题
5212 次
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 回答