我已经专业使用SAS已有5年了。我将其安装在笔记本电脑上,经常需要分析具有1,000-2,000个变量和数十万个观测值的数据集。
我一直在寻找SAS的替代方案,以使我能够对相似大小的数据集进行分析。我很好奇其他人在这种情况下会使用什么。当然,这不是今天使用的“大数据”。我的数据集也不足以容纳在内存中。我需要一种可以将算法应用于硬盘驱动器上存储的数据的解决方案。这些是我调查过的事情,无济于事:
- R-BigMemory可以创建存储在内存之外的矩阵,但是元素必须处于相同模式。我处理的字符和数字之间几乎是50/50的数据。FF软件包越来越接近我的需求,但是我不太了解哪些程序与之兼容。我认为支持程度有限。
- 熊猫-对于R的Python替代方案,我感到非常兴奋。但是,它也必须将所有数据保存在内存中。
- Revolution R-这个显示出很大的希望。我的家用计算机上有一份副本(如果您注册Kaggle,则可以免费获得),但尚未对其进行测试以作为SAS的可行替代方案。人们非常赞赏对Revolution R作为SAS替代产品的评论。
谢谢
更新1
编辑时要补充一点,我正在寻找人们成功使用的现实可行的解决方案。在大多数情况下,SAS使我可以浏览大文件,而不必担心内存限制。无论采用哪种SAS,他们都想出了使内存管理对用户透明的方法。但是,我怀着一颗沉重的胸怀使用SAS来完成我的工作(我必须这样做),并且会喜欢使用FOSS替代方案,该方案使我能够处理“大型”数据,而不必太费力地考虑数据在哪里的位置。特定时间(在内存或磁盘上)。
我遇到的最接近的东西是R的FF包,以及Python即将出现的称为Blaze的东西。但是,这些问题已经存在了很多年,因此分析师在此期间一直在做什么?他们如何处理内存限制中的这些相同问题?提供的大多数解决方案似乎是:
- 获得更多的内存-imo,这不是一个好的解决方案。很容易找到一个可以超过RAM但仍然适合硬盘驱动器的数据集。此外,工作流程必须适应在探索性数据分析过程中创建的所有结构。
- 子集数据-这对于探索是很好的,但对于最终确定结果和报告不是很好。最终,在子集上开发的任何过程都必须应用于整个数据集(在我的情况下,无论如何)。
- 整理数据-这是我想从实际实施此工作流程的人员那里了解的更多信息。怎么做?用什么工具?可以通过对用户透明的方式来完成吗?(即,创建一些磁盘上的数据结构,框架负责引擎盖下的分块)。