r - 在 R 中合并 2 个大型数据集
问题描述
我正在尝试合并两个大型数据集,因为我需要为我的模型创建一个最终的训练集来运行
head(TrainWithAppevents_rel4)
event_id |device_id |gender |age |group| phone_brand |device_model| numbrand nummodel | app_id
6 6 1476664663289716480 M 19 M22- åŽä¸º Mate 7 29 919 4348659952760821248
和
head(app_labels)
app_id |label_id
1 7324884708820028416 251
第一个数据集现在有唯一的行,因为我已经处理它以删除所有重复项
我希望我的最后一组具有以下列
event_id device_id gender age group phone_brand device_model numbrand nummodel app_id label_id
但是,当我尝试在 R(R 工作室会话)中使用以下内容进行合并时
TrainWithLabels=merge(x=TrainWithAppevents_rel4,y=app_labels,by="app_id",all.x = TRUE)
我收到以下错误
**Error: cannot allocate vector of size 512.0 Mb**
如果我再次运行,错误会有所不同,但仅限于向量的大小
我的数据集的大小如下:
> dim(TrainWithAppevents_rel4)
[1] 4787796 10
> dim(app_labels)
[1] 459943 2
有关我使用的机器/R 的更多信息:
> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
我使用基于英特尔 2.6GHz/16GB RAM /64 位操作系统/Windows10/x64 的处理器
我尝试了以下方法:
-通过删除重复和不需要的列来减少数据集,现在第一个数据集中的所有行都是唯一的
- 关闭我笔记本电脑上的所有其他应用程序,然后运行合并 - 仍然失败
- 执行 gc() 然后运行合并
我已经解决了关于 R 的 SO 的类似问题,但是没有一个提供了向前推进的解决方案,而不是特定于 64 位机器上的合并失败
任何人都可以帮助提出解决方案或解决方法以继续前进。
请假设这是我可以执行代码的唯一机器,目前无法通过 zepplin 在 AWS 上运行此 R 脚本。
解决方案
推荐阅读
- php - 字典顺序 nk 中的下一个排列
- excel - 如何使用 SAS 将 2 个数据集导出到 excel“Sheet1”和另一组 2 个数据集到“Sheet2”
- reactjs - 如何使用组件创建联合类型?
- javascript - 如何在 Blockly 中渲染一个块?
- css - Vue.js 子组件事件有时不会触发
- c++ - Abaqus 找不到 C++ 编译器
- angular - Angular7-有没有办法向 bindLabel 添加两个值
- javascript - 如何在延迟加载期间显示加载组件
- python - 如何在字节数组上正确使用 binascii.crc32
- jenkins - 任何人都可以解释 groovy 闭包的魔力/詹金斯