R 有许多针对数据分析的库(例如 JAGS、BUGS、ARULES 等),并在流行的教科书中被提及,例如:J.Krusche、Doing Bayesian Data Analysis;B.Lantz,“使用 R 进行机器学习”。
我已经看到将数据集视为大数据的 5TB 指南。
我的问题是:R 是否适合大数据问题中常见的数据量?在这种大小的数据集上使用 R 时,是否可以采用策略?
R 有许多针对数据分析的库(例如 JAGS、BUGS、ARULES 等),并在流行的教科书中被提及,例如:J.Krusche、Doing Bayesian Data Analysis;B.Lantz,“使用 R 进行机器学习”。
我已经看到将数据集视为大数据的 5TB 指南。
我的问题是:R 是否适合大数据问题中常见的数据量?在这种大小的数据集上使用 R 时,是否可以采用策略?
将 R 用于大型数据集的主要问题是 RAM 限制。将所有数据保存在 RAM 中的原因是它提供了比存储在 HDD 上更快的访问和数据操作。如果您愿意在性能方面受到影响,那么是的,在 R 中处理大型数据集是非常实用的。
这里有一些很好的答案。我想通过添加以下三个注释来加入讨论:
这个问题在提到大数据时强调数据量当然是可以理解和有效的,特别是考虑到数据量增长超过摩尔定律的技术能力指数增长的问题(http://en.wikipedia.org/wiki/Moore %27s_law )。
话虽如此,重要的是要记住大数据概念的其他方面。根据Gartner的定义(重点是我的 - AB):“大数据是海量、高速和/或种类繁多的信息资产,需要新的处理形式,以增强决策制定、洞察力发现和流程优化。” (通常称为“ 3Vs 模型”)。我提到这一点,因为它迫使数据科学家和其他分析师寻找和使用 R 包,这些包专注于大数据的体积方面(由庞大的R 生态系统的丰富性支持)。
虽然现有答案提到了一些与大数据相关的 R 包,以获得更全面的覆盖,但我建议参考CRAN 任务视图 “R 的高性能和并行计算”(http://cran.r-project。 org/web/views/HighPerformanceComputing.html),特别是“并行计算:Hadoop”和“大内存和内存不足数据”部分。
R 非常适合“大数据”!但是,您需要一个工作流程,因为 R 受到操作系统中 RAM 数量的限制(经过一些简化)。我采用的方法是与关系数据库进行交互(请参阅RSQLite
用于创建 SQLite 数据库并与之交互的包),运行 SQL 样式的查询以了解数据的结构,然后提取数据的特定子集以进行计算密集型统计分析。
然而,这只是一种方法:有一些包允许您与其他数据库(例如 Monet)交互或在 R 中运行具有较少内存限制的分析(例如,请参阅 参考资料pbdR
)。