我有一个向量,它提供矩阵每行有多少"1".现在我必须从向量中创建这个矩阵.
例如,假设我想创建一个out带有跟随向量的4 x 9矩阵v <- c(2,6,3,9).结果应该是这样的
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 1 1 0 0 0 0 0 0 0
[2,] 1 1 1 1 1 1 0 0 0
[3,] 1 1 1 0 0 0 0 0 0
[4,] 1 1 1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
我用for循环完成了这个但是我的解决方案对于大矩阵(100,000 x 500)来说很慢:
out <- NULL
for(i in 1:length(v)){
out <- rbind(out,c(rep(1, v[i]),rep(0,9-v[i])))
}
Run Code Online (Sandbox Code Playgroud)
有谁有想法以更快的方式创建这样的矩阵?