38

我将在 R 中进行一些日志文件分析(除非我不能在 R 中进行),并且我知道我的数据需要适合 RAM(除非我使用某种修复方法,例如 keyval 存储的接口,也许?)。所以我想知道如何提前知道我的数据将在 RAM 中占用多少空间,以及我是否有足够的空间。我知道我有多少 RAM(不是很大——在 XP 下是 3GB),并且我知道我的日志文件最终将有多少行和列以及列条目应该是什么数据类型(大概我需要检查为它读取)。

我如何将这些组合成一个 go/nogo 决策以在 R 中进行分析?(大概 R 需要能够有一些 RAM 来执行操作,以及保存数据!)我立即需要的输出是一堆简单的摘要统计信息、频率、意外事件等,所以我可能会写一些解析器/制表器将为我提供短期所需的输出,但我也想在下一步使用许多不同的方法来处理这些数据,所以我正在研究使用 R 的可行性。

我在这里看到了很多关于 R 中大型数据集的有用建议,我已经阅读并将重新阅读,但现在我想更好地了解如何确定我是否应该(a)去那里,(b)去在那里但希望必须做一些额外的事情以使其易于管理,或者(c)在为时已晚之前逃跑并在其他语言/环境中做一些事情(欢迎提出建议......!)。谢谢!

4

1 回答 1

41

R 非常适合大型数据集,可以使用开箱即用的解决方案,例如ff 包(尤其是bigmemoryff包),或者使用您自己的脚本分块处理您的内容。在几乎所有情况下,一点点编程就可以非常有可能处理大型数据集(>> 内存,比如 100 Gb)。自己做这种编程需要一些时间来学习(我不知道你的水平),但让你非常灵活。如果这是你的一杯茶,或者你是否需要跑步,取决于你想投入学习这些技能的时间。但是一旦你拥有了它们,它们会让你作为数据分析师的生活变得更加轻松。read.csv.ffdf

关于分析日志文件,我知道从使命召唤 4(计算机多人游戏)生成的统计页面通过将日志文件迭代解析到数据库中,然后从数据库中检索每个用户的统计信息来工作。有关界面的示例,请参见此处。迭代(以块为单位)方法意味着日志文件大小(几乎)是无限的。但是,获得良好的性能并非易事。

很多你可以在 R 中做的事情,你可以在 Python 或 Matlab,甚至 C++ 或 Fortran 中做。但只有当该工具对您想要的东西具有开箱即用的支持时,我才能看到该工具相对于 R 的明显优势。要处理大数据,请参阅HPC 任务视图。另请参阅 min 的较早答案以读取块中的非常大的文本文件。您可能感兴趣的其他相关链接:

关于选择 R 或其他工具,我会说如果它对谷歌来说足够好,那对我来说就足够好了;)。

于 2012-10-07T09:20:48.787 回答