为什么 plyr 的 join_all 函数会导致 r 崩溃?

Why plyr's join_all function causes r to crash?

我想使用 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')

我过去使用过此代码并且它有效,尽管当时数据帧包含更多列。尽管如此,它现在不起作用仍然令人困惑。

知道它为什么会导致 r 崩溃吗?

这是我加载的包列表:

library(tidyverse)
library(readxl)
library(tm)
library(tidyr)
library(data.table)
library(convertr)
library(dplyr)
library(stringr)
library(zoo)
library(runner)
library(ggplot2)

也许这些与 plyr 的功能有任何冲突 join_all?

我非常害怕 运行 再次使用该代码,因为它会浪费我大约 30 分钟的时间;因此,如果您或多或少确定,请提供答案。谢谢

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


使用 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"))