R语言中最成熟的稀疏矩阵包是什么?

30
有至少两个R语言的稀疏矩阵包。我正在研究这些,因为我正在处理太大且太稀疏以致于无法使用密集表示存储在内存中的数据集。我需要基本的线性代数例程,以及轻松编写C代码来操作它们的能力。哪个库最成熟,最好使用?
到目前为止,我发现:
- Matrix具有许多反向依赖项,这意味着它是最常用的。 - SparseM没有那么多反向依赖项。 - 各种图形库可能有它们自己的(隐含)版本;例如igraphnetwork(后者是statnet的一部分)。这些对我的需求过于专业化。
有人有这方面的经验吗?

RSeek.org的搜索结果来看,Matrix包似乎是被提及最多的一个。我通常认为CRAN任务视图比较权威,而Multivariate Task View中提到了Matrix和SparseM。


3
我认为这里也有“垃圾邮件”。帮助文件中写道:“与SparseM/Matrix的不同之处在于:(1)我们仅支持一种稀疏矩阵格式,(2)基于透明和简单的结构,(3)量身定制用于GMRF内的MCMC计算。 (4)类似于S3和S4兼容性...而且速度很快。” 反向依赖关系:CollocInfer,esd4all,fields,latticeDensity,LatticeKrig,pencopula,rworldmap,splm。 - Ben Bolker
投票关闭,建议使用工具。 - Ciro Santilli OurBigBook.com
3个回答

21

7

根据我的经验,Matrix是你提到的软件包中支持最好、最成熟的。它的C架构也应该比较容易理解和操作。


1
在稀疏矩阵上使用log(x)是一个不好的主意,因为log(0)没有定义,并且大多数稀疏矩阵的元素都是零。
如果你只想获取非零元素的对数,尝试将其转换为三元组稀疏表示,并对这些值取对数。

1
哎呀,我是说实际上是log(1+x)。我猜这没有任何意义。是的,我用三元组表示法来做,这样更有意义。 - Brendan OConnor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接