1

给定一个矩阵,

x<-matrix(rnorm(4))

我该怎么做以下

因此,第 1 行的元素将被复制 1 次,第 2 行的元素将被复制 2 次,等等......

我试图用'rep'和循环来做,但如果矩阵很大,它真的很慢。

4

1 回答 1

4

如果你只想要一个长向量,那么给定向rep量化你可以简单地做......

rep( x , times = 1:nrow(x) )
#[1]  1.5921465  0.9901053  0.9901053  0.2125433  0.2125433  0.2125433 -0.9288893 -0.9288893 -0.9288893 -0.9288893

如果您需要将每一行作为单独的元素lapply,请尝试使用不同类型的循环构造...

lapply( 1:nrow(x) , function(i) rep( x[i,] , times = i ) )
#[[1]]
#[1] 1.592147

#[[2]]
#[1] 0.9901053 0.9901053

#[[3]]
#[1] 0.2125433 0.2125433 0.2125433

#[[4]]
#[1] -0.9288893 -0.9288893 -0.9288893 -0.9288893

这个答案假设矩阵x在您的.GlobalEnvironment

于 2013-08-20T16:02:34.697 回答