使用R读入并搜索极大的CSV文件是否有意义?

时间:2015-06-30 05:37:03

标签: python r database csv

我有一个包含大约700列和10,000行的CSV文件。这些列中的每一列都包含每行第1列中对象的属性信息。我想搜索这个"数据库"对于根据其属性信息匹配一组要求的特定记录。

例如,一列包含2字母缩写形式的状态信息。另一列可能包含指某个地理特征的首字母缩略词。假设我正在查找状态为NY的所有行,以及GRG中的首字母缩略词。

我应该使用哪些软件包来处理R?

中的这项工作/数据anlaysis

如果R中没有好的软件包,为了处理这么大的数据集,我应该使用什么?

我熟悉R,Python,Office和一些SQL命令。

编辑:我不打算修改数据集,而是记录(打印输出或创建子集)查询结果。我一开始总共有10到12个查询,以确定此数据集是否真正符合我的需要。但是我可能稍后会有数百个查询 - 此时我想从手动查询数据集切换到自动查询(如果可能的话)。

3 个答案:

答案 0 :(得分:4)

您可以使用data.table包中的fread选项

http://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.pdf

或者您可以在RDBMS中导入数据并使用RODBC

连接到它

http://www.statmethods.net/input/dbinterface.html

或者您可以使用Revolution Analytics的RevoScaleR软件包

或者您可以使用云来处理数据

或者您可以使用ff包

根据您的查询需求 - data.table包是最好的 您可以使用setKey设置索引

答案 1 :(得分:2)

根据每列中的数据量,如果你打算进行统计分析,我肯定会选择R.如果没有分析那么python与pandas是一个很好的解决方案。不要在办公室使用这些文件,这会让你头疼。

如果你很勇敢并且数据会增加,请根据以前的需要使用R或python实现MongoDB。

答案 2 :(得分:1)

如果您不想将整个文件加载到内存中,我建议使用python库Pandas

您可以启用“iterator = True”,然后按块将文件块加载到内存中并循环遍历每个块以进行分析。 如果您需要任何其他信息,请告诉我。