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

Ant*_*ton 5 r

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

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

B.M*_*.W. 7

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

在R外面更容易发生这一步骤

(1)Linux Shell:

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

sort -R data | head -n 1000 >data.sample
Run Code Online (Sandbox Code Playgroud)

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

(2)如果数据不够小,不适合内存.

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

select * from tablename order by rand() limit 1000
Run Code Online (Sandbox Code Playgroud)

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

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