我有两个数据框,每个数据框有120万行。
我尝试将它们与dummy <- merge(df1, df2)
合并。两个数据帧都没有共同的列,但两个数据帧都没有。行按我想要的顺序排列。
我希望它们并排合并,但是当我运行合并功能时,我收到此错误:
Error: cannot allocate vector of size 5905.6 Gb
In addition: Warning messages:
1: In rep.int(rep.int(seq_len(nx), rep.int(rep.fac, nx)), orep) :
Reached total allocation of 8107Mb: see help(memory.size)
2: In rep.int(rep.int(seq_len(nx), rep.int(rep.fac, nx)), orep) :
Reached total allocation of 8107Mb: see help(memory.size)
3: In rep.int(rep.int(seq_len(nx), rep.int(rep.fac, nx)), orep) :
Reached total allocation of 8107Mb: see help(memory.size)
4: In rep.int(rep.int(seq_len(nx), rep.int(rep.fac, nx)), orep) :
Reached total allocation of 8107Mb: see help(memory.size)
答案 0 :(得分:1)
您可能需要尝试使用data.table::cbind
作为合并row.names
的替代参考替代方案。
library("data.table")
setDT(df1)
setDT(df2)
data.table::cbind(df1, df2)
但请在包reference中注意此警告:
由于此功能,这些功能在data.table中被屏蔽 cbind:
“如果至少有一个参数是数据,则将使用数据框方法 帧”。这意味着cbind(DT,DF)将调度到S3方法 cbind.data.frame,即使data.table提供了cbind.data.table。 因此,我们掩盖了这些功能。警告信息将是 加载data.table包时呈现给用户(通过R)。如果 第一个参数不是data.table,然后它们恢复到基数 版本