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
?如果你能在回答中解释一下语法,那就太棒了