为R中的稀疏矩阵赋值-不同列中的每一行

为R中的稀疏矩阵赋值-不同列中的每一行,r,matrix,indexing,R,Matrix,Indexing,这两种方法都适用于小矩阵。我的矩阵将有1.2亿列和12行。在R中有更好的方法吗?使用方法设置元素后,很容易发现1元素的模式。例如,请参见以下内容: [1,] 1 . . . 1 . . . 1 . . . [2,] . 1 . . . 1 . . . 1 . . [3,] . . 1 . . . 1 . . . 1 . [4,] . . . 1 . . . 1 . . . 1 或者更好: which(m2==1) #[1] 1 6 11 16 17 22 27 32 33

这两种方法都适用于小矩阵。我的矩阵将有1.2亿列和12行。在R中有更好的方法吗?

使用方法设置元素后,很容易发现
1
元素的模式。例如,请参见以下内容:

[1,] 1 . . . 1 . . . 1 . . .   
[2,] . 1 . . . 1 . . . 1 . .   
[3,] . . 1 . . . 1 . . . 1 .  
[4,] . . . 1 . . . 1 . . . 1
或者更好:

which(m2==1)
#[1]  1  6 11 16 17 22 27 32 33 38 43 48
这种模式很容易复制:

diff(which(m2==1)) 
#[1] 5 5 5 1 5 5 5 1 5 5 5
m2
[1,] 1 . . . 1 . . . 1 . . .   
[2,] . 1 . . . 1 . . . 1 . .   
[3,] . . 1 . . . 1 . . . 1 .  
[4,] . . . 1 . . . 1 . . . 1
which(m2==1)
#[1]  1  6 11 16 17 22 27 32 33 38 43 48
diff(which(m2==1)) 
#[1] 5 5 5 1 5 5 5 1 5 5 5
m2<-Matrix(0, nrow = nc, ncol = rxc, sparse = TRUE)
indices<-c(1,cumsum(rep(c(rep(nrow(m2)+1,nrow(m2)-1),1),ncol(m2)/nrow(m2)))+1)
indices<-indices[1:(length(indices)-1)]
m2[indices]<-1