【发布时间】:2020-10-22 11:37:36
【问题描述】:
我有一个大的sparse matrix(Matrix 中的dgCMatrix 对象R)。
玩具示例:
m <- Matrix(c(0,0,2:0), 3,5)
rownames(m) <- paste0("g",1:3)
colnames(m) <- paste0("c",1:3)
> m
3 x 5 sparse Matrix of class "dgCMatrix"
c1 c2 c3 c4 c5
g1 . 1 . . 2
g2 . . 2 . 1
g3 2 . 1 . .
我想将melt 发送到data.frame。
reshape2 的melt 需要将此dgCMatrix 强制转换为matrix 对象,并且对于我正在处理的维度而言,这非常慢。所以我正在寻找更高效的东西。
我认为mefa4 的Melt 可以解决问题,但它会丢弃零值:
> mefa4::Melt(m)
rows cols value
1 g3 c1 2
2 g1 c2 1
3 g2 c3 2
4 g3 c3 1
5 g1 c5 2
6 g2 c5 1
我想保留它们,但我在mefa4::Melt 的手册中没有看到提供该参数的参数。关于替代方案的任何想法?
【问题讨论】:
-
稀疏矩阵的全部意义在于它没有任何零。
标签: r sparse-matrix melt