我怎么知道R中的数据集将会过大?
我将在R中进行一些日志文件分析(除非我不能在R中完成),并且我知道我的数据需要适合RAM(除非我使用某种types的修补程序,比如keyval存储的接口,也许?)。 所以我想知道如何提前告诉我的数据将在RAM中占用多less空间,以及我是否有足够的空间。 我知道我有多less内存(不是很多,在XP下是3GB),而且我知道我的日志文件最终会有多less行和多less列,以及列条目应该是什么数据types(这大概需要检查它读取)。
我如何将这些结合起来,作为在R中进行分析的go / nogo决定? (据推测,R需要能够有一些RAM来做操作,以及保存数据!)我的直接要求的输出是一堆简单的总结统计,频率,意外事件等,所以我可以写一些parsing器/制表符,这将给我输出我需要的短期,但我也想玩很多不同的方法来作为下一步这个数据,所以我看着使用R的可行性。
我已经看到了很多有关R中大数据集的有用build议,我已经阅读并将重读,但是现在我想更好地理解如何去(a)是否应该去(b)去但希望不得不做一些额外的东西,使其易于pipe理,或(c)在太晚之前跑掉,并在其他语言/环境中做某些事情(build议欢迎…!)。 谢谢!
R非常适合大数据集,或者使用像bigmemory
或者ff软件包 (特别是read.csv.ffdf
)的开箱即用的解决scheme,或者使用自己的脚本以块的forms处理你的东西。 在几乎所有的情况下,一个小程序都可以处理大数据集(>>内存,比如说100 Gb)。 做这种编程需要一些时间来学习(我不知道你的水平),但是让你真正的灵活。 如果这是你的一杯茶,或者如果你需要运行,取决于你想投资学习这些技能的时间。 但是,一旦拥有了它们,它们将使您作为数据分析师的生活变得更容易。
关于日志文件的分析,我知道从“使命召唤4”(计算机多人游戏)生成的统计页面通过迭代地parsing日志文件到数据库中,然后从数据库中检索每个用户的统计信息。 看到这里的一个接口的例子。 迭代(分块)方法意味着日志文件的大小是(几乎)无限的。 但是,获得好的performance并不是微不足道的。
你可以在R中做很多事情,你可以用Python或者Matlab,甚至C ++或者Fortran。 但是只有当这个工具对你想要的function有开箱即用的支持的时候,我才能看到这个工具比R的明显优势。对于处理大量的数据,请看HPC Task视图 。 另请参阅早期的分钟读取大块文本文件的答案。 其他相关的链接可能会让你感兴趣:
- 在R中快速读取非常大的表格作为数据框
- https://stackoverflow.com/questions/1257021/suitable-functional-language-for-scientific-statistical-computing (讨论包括用于大数据处理)。
- 修剪一个巨大的(3.5 GB)CSV文件读入R
- 我的博客文章展示了如何估计数据集的RAM使用情况。 请注意,这假定数据将被存储在一个matrix或数组中,并且只是一个数据types。
- 用R处理日志文件
关于selectR或其他工具,我会说,如果这对Google来说足够好,那对我来说就足够了;)。