Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么是plyr';s join_all函数导致r崩溃?_R_Plyr - Fatal编程技术网

为什么是plyr';s join_all函数导致r崩溃?

为什么是plyr';s join_all函数导致r崩溃?,r,plyr,R,Plyr,我想使用plyr的join_all函数连接多个数据帧。我的数据帧由三列组成,每列都有相同数量的行。当我运行代码时,r无法完成它的工作;整个电脑都慢了,我不得不重新启动它 以下是我使用的代码: library(plyr) merge_corp_inv_count_noavg <- join_all(list(canada,china,france,germany,india,italy,japan,russia,saudiarabia,

我想使用plyr的join_all函数连接多个数据帧。我的数据帧由三列组成,每列都有相同数量的行。当我运行代码时,r无法完成它的工作;整个电脑都慢了,我不得不重新启动它

以下是我使用的代码:

library(plyr)

merge_corp_inv_count_noavg <- join_all(list(canada,china,france,germany,india,italy,japan,russia,saudiarabia,
                                      spain,turkey,unitedkingdom,unitedstates),
                                 by = c("date", "target_nation"), type='left')
也许这些与plyr的功能有冲突


我非常害怕再次运行该代码,因为它浪费了我大约30分钟的时间;所以,如果你或多或少有把握,请提供答案。谢谢。

如果事情发生得更早,突然崩溃,最好检查数据集。使用join时,某些数据集的键列可能存在重复项,这可能会触发笛卡尔连接而不是
left
join,从而造成内存问题


使用
tidyverse
的选项如下

library(dplyr)
library(purrr)
list(canada, china, france, germany, india, italy, japan, russia, saudiarabia,
                                  spain, turkey, unitedkingdom, unitedstates) %>%
   reduce(left_join, by = c("date", "target_nation"))

在列表之前我需要任何函数吗?@KenLee我怀疑问题是因为一些新数据集中的“日期”和“目标国家”重复,这会创建笛卡尔连接,可能会破坏内存。您可以检查这些数据集中每个列的计数,即
list(加拿大、中国、法国、德国、印度、意大利、日本、俄罗斯、沙特、西班牙、土耳其、英国、美国)%%>%地图(~count(.x,日期,目标国家))
@KenLee这很可能是问题,当您的初始数据集为6k大小时,200万行非常大。您是对的——数据帧是相同的。我们将尝试找出原因。谢谢!我们可以关闭线程。我如何奖励您?
library(dplyr)
library(purrr)
list(canada, china, france, germany, india, italy, japan, russia, saudiarabia,
                                  spain, turkey, unitedkingdom, unitedstates) %>%
   reduce(left_join, by = c("date", "target_nation"))