样本一个太大的CSV文件加载到R?

时间:2013-11-24 14:05:59

标签: r

我有一个3GB的csv文件。它太大而无法加载到我的计算机上的R中。相反,我想在不加载完整数据集的情况下加载行的样本(比如1000)。

这可能吗?我似乎无法在任何地方找到答案。

1 个答案:

答案 0 :(得分:7)

如果您不想向Revolution R支付数千美元,以便您可以一次性加载/分析您的数据,那么您需要找到一种方法来对数据进行采样。

在R之外,这一步更容易发生。

(1)Linux Shell:

假设您的数据采用一致的格式。每行是一条记录。你可以这样做:

sort -R data | head -n 1000 >data.sample

这会随机对所有行进行排序,并将前1000行放入单独的文件中 - data.sample

(2)如果数据不够小,无法放入内存中。

还有一种使用数据库存储数据的解决方案。例如,我有很多表以美丽的表格格式存储在MySQL数据库中。我可以这样做:

select * from tablename order by rand() limit 1000

您可以使用RMySQL轻松地在MySQL和R之间进行通信,并且可以索引列以保证查询速度。如果您想要考虑数据库的功能,您还可以验证整个数据集与样本的平均值或标准差。

根据我处理“大”数据的经验,这是最常用的两种方法。