merge - 在 R 中将数据帧中发现的观察添加到更大的数据帧中

  显示原文与译文双语对照的内容

我需要每天更新一个大数据帧( a ),使用较小的数据帧( b ) 。 两个数据帧共享相同数量的变量和相同的列类结构。 唯一的区别是观测的数量和观测本身。 我在这个网站上花了几个小时,其他人试图解决一个问题。 我终于让 merge() 在小数据帧( 96变量的313个观察) 工作了。

merge(a,b,all=T)

但是,当我试图在较大的数据帧( 。~1.5 个变量的观察) 上运行相同的操作时,我得到

错误:无法分配大小为 1.6的向量。

我根据任务管理器拥有 ~12 免费物理内存。 我从 gc() 函数开始,确保我有最多的内存可以能,但它仍然不能工作。 是否有其他函数将观察添加到现有数据框架中? 我尝试了一些它的他的,但结果并不是一个具有相同结构的数据框架。

如果你还不能告诉我我是 R ( 这个论坛)的新手。 我开始学习 Stata,有人说服我在我太深之前转向 R 。 在Stata里这是个很简单的操作

clear

use a

append using b

在Stata中没有任何问题就完成了任务,它是快速( 不到几秒钟) 。

谁来帮忙谢谢? !

时间: 作者:

请参见这里问题的答案: R: 如何在没有内存of的情况下对两个巨大的数据帧进行rbind处理

如果数据位于SQLite数据库中,则可以使用sqldf包。 否则,你应该考虑使用 data.table 包。

作者:

最后,我使用一个相对简单的解决方案,将较大的数据帧分解成几个较小的数据帧,只使用 rbind(a,b) 。 这些代码在我的部分处理新的数据结构,它允许我处理更小的数据帧,实际上加快处理时间。

作者:
...