小编dom*_*aeg的帖子

在R中创建每行已知数量为1的二进制矩阵的快速方法

我有一个向量,它提供矩阵每行有多少"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)

有谁有想法以更快的方式创建这样的矩阵?

r matrix

0
推荐指数
1
解决办法
146
查看次数

标签 统计

matrix ×1

r ×1