R 具有行和列和约束的随机二元矩阵

R 具有行和列和约束的随机二元矩阵,r,matrix,sparse-matrix,R,Matrix,Sparse Matrix,我的目标是创造: 带有0或1项的随机填充矩阵。在这种特殊情况下,矩阵为4x24 4行中每一行的行和正好是6 每个24列的列和正好是1 调用所需的矩阵M 看待M的另一种方式: 有正好等于1的24个条目 没有任何列具有多个1条目 进展: 每行有6个点,每个点有1个条目。其余为零,矩阵稀疏。对于4行,这意味着M可以由存储1条目的位置的索引矩阵唯一确定。将此索引矩阵称为indexM 我用未经替换采样的数字1:24填充了indexM: set.seed(30592) colNum <- 24

我的目标是创造:

  • 带有
    0
    1
    项的随机填充矩阵。在这种特殊情况下,矩阵为
    4x24
  • 4
    行中每一行的行和正好是
    6
  • 每个
    24
    列的列和正好是
    1
调用所需的矩阵
M

看待
M
的另一种方式:

  • 有正好等于
    1
    24个
    条目
  • 没有任何列具有多个
    1
    条目
进展:

每行有
6个
点,每个点有
1个
条目。其余为零,矩阵稀疏。对于
4
行,这意味着M可以由存储
1
条目的位置的索引矩阵唯一确定。将此索引矩阵称为
indexM

我用未经替换采样的数字
1:24
填充了
indexM

set.seed(30592)
colNum <- 24
rowSum <-6
numZeros <- colNum-rowSum

OneRow<-c(rep(1,rowSum),rep(0,numZeros))


indexM<-matrix(sample(1:24,replace=FALSE),
                    nrow=4,ncol=6,byrow=TRUE)
set.seed(30592)
科纳姆
我在
Matrix
库中找到了
sparseMatrix
,但它需要一个向量或行索引和另一个向量的列索引,这不是我所拥有的

这些限制规定

  • 行索引是
    rep(1:4,6)
  • 列索引为
    1:24
行和列索引之间的匹配是随机的。我们可以

library(Matrix)

# fix rows, jumble cols
sparseMatrix(rep(1:4, each=6), sample(1:24))

# fix cols, jumble rows
sparseMatrix(sample(rep(1:4, each=6)), 1:24)

# jumbl'm all
sparseMatrix(sample(rep(1:4, each=6)), sample(1:24))
其中任何一个都会返回类似

4 x 24 sparse Matrix of class "ngCMatrix"

[1,] . . . . | | . . | . . . | | . | . . . . . . . .
[2,] . | | . . . | . . | . . . . . . . . | . . . | .
[3,] . . . | . . . | . . | | . . . . | . . . | . . .
[4,] | . . . . . . . . . . . . . | . . | . | . | . |

sparseMatrix(rep(1:4,每个=6),sample(24))
似乎就是它,从阅读
?sparseMatrix
。?@Frank那是
i
j
?如果你能在回答中解释一下语法,那就太棒了