【发布时间】:2026-02-10 11:25:02
【问题描述】:
我有多个数据框(超过 25 个),由三列“CompanyName”、“Year”和“VariableX”组成。 “公司编号”和“年份”的组合是唯一的。我想将所有这些数据框合并到 1 个大数据框。使用列“CompanyNumber”、“Year”、“来自 df1 的变量”、“来自 df2 的变量”等。每个数据帧包含大约 80000 行。
data <- Reduce(function(x, y) merge(x, y, all=TRUE),
list(df1, df2, df3, df4, df5, df6, df7, df8, df9, df10,
df11, df12, df13, df14, df15, df16, df17, df18, df19, df20,
df21, df22, df23, df24, df25))
我尝试了上面的代码,当我的数据帧少于 8 个但不适用于完整数据时,该代码有效。我收到了错误:
错误:无法分配大小为 126.7 Mb 的向量
我目前正在使用 8GB,R 64。我已经使用 gc() 和 rm(list=ls()) 清除了 R 的内存。
有没有办法以更少的内存占用方式在 R 中合并这些数据帧?
【问题讨论】:
-
当我的数据帧少于 8 个时有效 ...检查第 8 个数据帧是否有任何不一致
-
@Parfait 或意识到如果您不指定
by并且所有变量名称都相同,那么在合并 8 个数据框后,您将拥有一个包含 640,000 行而不是 80,000 行的数据框。