【发布时间】:2020-03-28 23:01:07
【问题描述】:
我正在尝试在 R 中读取一个大型数据集 (>30G),但我的笔记本电脑只有 16G 的 RAM。但我只需要这个数据集的一个子集。具体来说,我需要其 ID(我的数据集中有一个表示该 ID 的变量)等于某些值(这些值来自另一个数据集)的所有观察值。如果我有足够的RAM,自然会先读取两个数据文件,然后通过公共ID进行合并。
由于内存不足,是否可以使用 shell 命令以某种方式预处理数据文件,以便我可以将其用作 cmd 的 fread 的参数。或者有人有替代解决方案吗?提前致谢!
【问题讨论】:
-
你能分享你使用的'fread'命令,以及数据文件的前几行。它将更容易推荐适合预处理数据集的工具(用于主数据集和具有 ID 的数据集)
-
你有像
join这样的GNU Text Utilities吗? -
您使用的是什么操作系统? cmd/终端命令将相应地有所不同。或者,您可以尝试将数据集加载到类似 sql 的服务器,然后使用 DBI 查询访问相关行。
-
除了@Rohit 的评论,还有一个名为
vroom的包可能(也)有帮助。 -
@dash-o 主数据集如下所示: main
标签: r shell data.table large-data data-cleaning