【发布时间】:2019-07-15 03:28:26
【问题描述】:
我有一个稀疏矩阵,如下所示
library(Matrix)
set.seed(2019)
nrows <- 10L
ncols <- 5L
vals <- sample(
x = c(0,1,2,3),
prob = c(0.7,0.1,0.1,0.1),
size = nrows*ncols,
replace = TRUE
)
mat <- matrix(vals,nrow=nrows)
matSparse <- as(mat,"sparseMatrix")
> matSparse
10 x 5 sparse Matrix of class "dgCMatrix"
[1,] 2 2 . . .
[2,] 2 . . . .
[3,] . . 1 3 3
[4,] . . . . .
[5,] . . . . 3
[6,] . . . . .
[7,] 3 . . . 1
[8,] . 2 1 . 1
[9,] . . . . .
[10,] . . . 2 .
我想为每列计算介于特定值之间的元素数量(每列可能不同)。例如,我有一个向量(长度为ncols)brks = c(1, 2, 1, 2, 2)。我想为每一列 j 计算以下内容:
1) > 0(.) 和 <=brks[j] 的元素数量
2) >brks[j]的元素个数。
在上面的示例中,结果将是 1) 0 2 2 1 2 和 2) 3 0 0 1 2。
我尝试创建 lgeMatrix 类的逻辑稀疏矩阵并应用 colSums,但没有成功。最后,我想要一种高效的方法,因为我有非常大的矩阵(10000 行和100000 列)
【问题讨论】:
标签: r sparse-matrix