我在R中使用了2个中等大小的数据集。我想检查一个数据集,如果它的参考编号与其他数据集中的参考编号匹配,如果是,则在第二个数据集中分配一个包含值存在于另一个数据集的列中。
ghi2$state=ifelse(b1$accntnumber %in% ghi2$referencenumber,b1$address,0)
每次我运行此代码时,我的RStudio都会挂起并且很长时间没有响应。是因为它花时间处理命令还是我的命令错了。 我正在使用2GB RAM系统,所以我认为R挂断了。我应该使用==运算符而不是%in%?我会得到相同的结果吗?
答案 0 :(得分:2)
<强> 1。我应该使用==运算符而不是%in%?
不(!)。见#2。
<强> 2。我会得到相同的结果吗?
没有。订单和位置必须与==
匹配。另外,请参阅@ Akrun的评论。
第3。如何加快速度和/或处理RStudio冻结
如果RStudio冻结,您可以保存您的日志文件信息,将其发送给将快速响应的RStudio团队,您也可以将您的日志文件提供给我们以获取帮助。
除此之外,适用一般大数据规则。以下是一些提示:
data.table
如果是RAM问题,你可以
一个。使用云帐户获取更多内存
湾买一些RAM(只是说')
℃。使用64位R并将R可用的RAM增加到最大值(如果它还不是
如果是CPU问题,您可以考虑并行化
unique
来避免冗余的比较在SO上预先存在的大数据Q&amp; A中还有许多其他提示。