我是在 R 中处理大量资料集的新手。因此,我很感谢我拥有 20 年资料的任何帮助,并且对于每年三个 .csv 档案,每个档案大小约为 3 GB 我尝试使用函式 list.files() 来存盘矢量中档案的名称,现在我知道理论上我需要沿着这个矢量回圈来读取档案并一个一个地生成积分并组合档案。但我不知道如何回圈并组合我的资料集或运行不同的模型!!!!我经常收到错误“错误:无法分配大小为 3.4 Gb 的矢量”或“存储器已用尽,已达到限制”!!!!!!!如果有人可以指导我,我将不胜感激。最好的问候萨拉
uj5u.com热心网友回复:
您应该确保您的计算机有足够的 RAM 存储器和存盘空间来处理这些资料量。fread() 是一个非常有用的函式,可以快速整理资料。试试看:https ://www.rdocumentation.org/packages/data.table/versions/1.14.2/topics/fread 。
如果这不起作用,请尝试使用火花。它非常快速、方便和简单。你不需要知道它,只需检查这个备忘单(https://ugoproto.github.io/ugo_r_doc/pdf/sparklyr.pdf)。祝你好运!
uj5u.com热心网友回复:
我建议用data.table
. 就存储器而言,这比大多数其他软件包更快、更有效。
这里有一些链接:
- data.table 与 data.frame
- 比较处理大型资料集的不同方法的基准
- data.table 参考/描述
在您的情况下,您可以尝试以下操作:
library(data.table)
files = list.files("your_path")
df_final = data.table()
for (file in files) {
df_temp = fread(file)
### do all the mathematics you need, here just an example
df_temp[, Sum:=sum(last_bill, na.rm=TRUE), by=c("Product", "Year")]
df_final = rbind(df_final, df_temp)
}
rm(df_temp)
0 评论