我有一个大的ffdf数据帧保存到磁盘中,需要加载到一个新的R会话中。当我在文件所在的目录中运行load.ffdf时,会收到以下错误消息:
load.ffdf("./ffdb")
# Error in `filename<-.ff`(`*tmp*`, value = "./custTrans$custKey.ff") :
# ff file rename from './custTrans$custKey.ff' to
# 'mylocation'/ffdb/custTrans$custKey.ff' failed我真的很想看这些文件。有什么方法可以鼓励人们阅读吗?有办法直接读取单个ff列文件吗?它们的格式是什么?也许我可以手动将它们放在底层ff包使用的临时位置上?
我看过save.ffdf和load.ffdf函数,但这并没有给我带来任何简单的修复。
背景:我最初将数据帧custTrans保存到默认的./ffdb目录。实际上,我希望它们在目录./custTrans中,所以我使用move.ffdf来移动文件。移动了列文件,但没有移动.RData和.Rprofile文件。我尝试从./ffdb目录加载数据,并将.RData和.Rprofile文件复制到./custTrans目录中,并在那里运行load.ffdf。我还尝试将数据文件移回./ffdb目录。错误消息是相同的。
发布于 2013-10-02 08:05:21
我找到了这个问题的部分解决办法。现在我可以使用ff读取原始的readBin文件了。由于我的ffdf被加载到搜索路径中,所以我可以使用它查看列中的特定数据类型以及列长度。打印物体会给我信息。
custTrans然后readBin,根据上面打印的信息设置what和n,读取文件。然后,可以使用标准方法将它们组合回ffdf。
custKey <- readBin("./custTrans/MINS$custKey.ff", what = "int", n = 268820)
Transactiondate.max <- readBin("./custTrans/MINS$Transactiondate.max.ff",
what = "double", n = 268820)
Transactiondate.min <- readBin("./custTrans/MINS$Transactiondate.min.ff",
what = "double", n = 268820)
custTrans <- as.ffdf(as.ff(custKey),
as.ff(Transactiondate.max),
as.ff(Transactiondate.min))这显然是假设所有这些都符合内存,而它确实是这样做的。(问题不在于文件的大小,而是生成文件花费了很长时间。)
https://stackoverflow.com/questions/19132292
复制相似问题