R根据其索引复制元素

R根据其索引复制元素,r,R,给定一个矩阵 x<-matrix(rnorm(4)) x如果你只需要一个长向量,那么给定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( 1:nr

给定一个矩阵

x<-matrix(rnorm(4))

x如果你只需要一个长向量,那么给定
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( 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

中可用,如果您只需要一个长向量,那么给定
代表
是向量化的,您可以简单地执行

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( 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