我想使用 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 分钟的时间;因此,如果您或多或少确定,请提供答案。谢谢。
最佳答案
如果事情早些时候运行并突然崩溃,最好检查数据集。使用连接时,某些数据集可能会出现重复的关键列,这可能会触发笛卡尔连接而不是左
连接,从而产生内存问题。
使用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"))
关于r - 为什么plyr的join_all函数会导致r崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67560876/