【发布时间】:2017-05-05 02:06:53
【问题描述】:
我有大量数据框(大约 50,000 个)。每个数据框有两列,键和值,大约有 100-200 行。我的问题本质上类似于this 和this。按照他们的想法,我构建了一个数据框列表并使用了Reduce函数
freq_martix<-Reduce(function(dtf1, dtf2) merge(dtf1, dtf2, by = "key", all = TRUE),
freq_list)
但是我的代码已经运行了好几天。我只是想知道是否有更有效、更快的方法来合并大量数据帧?
【问题讨论】:
-
如果每个数据框中只有一个键和值,那么你真的需要在键上合并吗?你不能只连接数据框吗?还是每个数据框中的值是不同类型的测量?
-
每个数据帧可能有重叠的键。更重要的是,每个数据框代表每个文件,因此,我需要合并数据框中的列(从第 2 列开始)来表示原始文件。谢谢。
-
你的代码运行多长时间来合并两个data.frames?
-
你的数据框大小是多少?
-
@DingLi:连接可能仍然是一种选择,例如为每个单独的数据框添加一列
df$source = current_source。然后使用bind_rows()之类的东西连接所有单独的帧,如果需要,最后重新整形。它可能比合并更快,因为每次都不需要查找密钥,但如果不了解数据就很难说。
标签: r performance dataframe merge memory-efficient