我将在R中进行一些日志文件分析(除非我不能在R中完成),并且我知道我的数据需要放入RAM中(除非我使用某种修复方法,比如访问keyval存储的接口?)。所以我想知道如何提前知道我的数据将在RAM中占用多少空间,以及我是否会有足够的空间。我知道我有多少RAM (在XP下不是很大-3 3GB ),我知道我的日志文件有多少行和多少列,以及列条目应该是什么数据类型(我可能需要在读取时检查这些数据类型)。
我如何将这些放在一起,以决定是否在R中进行分析?(假设R需要有一些RAM来执行操作,以及保存数据!)我直接需要的输出是一堆简单的汇总统计数据、频率、意外事件等,所以我可能会编写某种解析器/制表器,它将为我提供短期所需的输出,但我也希望在下一步中使用许多不同的方法来处理这些数据,所以我正在考虑使用R的可行性。
我在这里看到了很多关于R中大型数据集的有用建议,我已经读过并将重新阅读,但现在我想更好地了解如何弄清楚我是否应该(a)去那里,(b)去那里,但希望必须做一些额外的事情来使它可管理,或(c)在为时已晚之前离开,在其他语言/环境中做一些事情(欢迎建议...!)。谢谢!
发布于 2012-10-07 17:20:49
R非常适合于大型数据集,无论是使用bigmemory或ff package (特别是read.csv.ffdf)等开箱即用的解决方案,还是使用自己的脚本分块处理数据。在几乎所有情况下,少量编程都可以处理大型数据集(>>内存,比方说100 Gb)。自己做这种编程需要一些时间来学习(我不知道你的水平),但这会让你变得非常灵活。如果这是你喜欢的,或者你是否需要跑步取决于你想花多长时间来学习这些技能。但一旦你拥有了它们,它们将使你作为数据分析师的生活变得更容易。
关于分析日志文件,我知道从Call of Duty 4(计算机多人游戏)生成的统计信息页面的工作方式是将日志文件迭代地解析到数据库中,然后从数据库中检索每个用户的统计信息。有关该接口的示例,请参见here。迭代(以块为单位)方法意味着日志文件的大小(几乎)是无限的。然而,获得良好的性能并不是微不足道的。
你可以在R中做的很多事情,你可以在Python或Matlab中做,甚至在C++或Fortran中也能做。但只有当该工具对您想要的东西有开箱即用的支持时,我才能看到该工具相对于R的明显优势。对于处理大型数据,请参阅the HPC Task view。另请参阅reading a very large text file in chunks的min的早期答案。您可能会感兴趣的其他相关链接:
至于选择R或其他工具,我会说如果它对Google足够好,对我来说也足够好;)。
https://stackoverflow.com/questions/12767432
复制相似问题