首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用load.ffdf将ff / ffbase文件加载到R会话中

用load.ffdf将ff / ffbase文件加载到R会话中
EN

Stack Overflow用户
提问于 2013-10-02 07:53:01
回答 1查看 837关注 0票数 1

我有一个大的ffdf数据帧保存到磁盘中,需要加载到一个新的R会话中。当我在文件所在的目录中运行load.ffdf时,会收到以下错误消息:

代码语言:javascript
复制
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.ffdfload.ffdf函数,但这并没有给我带来任何简单的修复。

背景:我最初将数据帧custTrans保存到默认的./ffdb目录。实际上,我希望它们在目录./custTrans中,所以我使用move.ffdf来移动文件。移动了列文件,但没有移动.RData.Rprofile文件。我尝试从./ffdb目录加载数据,并将.RData.Rprofile文件复制到./custTrans目录中,并在那里运行load.ffdf。我还尝试将数据文件移回./ffdb目录。错误消息是相同的。

EN

回答 1

Stack Overflow用户

发布于 2013-10-02 08:05:21

我找到了这个问题的部分解决办法。现在我可以使用ff读取原始的readBin文件了。由于我的ffdf被加载到搜索路径中,所以我可以使用它查看列中的特定数据类型以及列长度。打印物体会给我信息。

代码语言:javascript
复制
custTrans

然后readBin,根据上面打印的信息设置whatn,读取文件。然后,可以使用标准方法将它们组合回ffdf

代码语言:javascript
复制
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))

这显然是假设所有这些都符合内存,而它确实是这样做的。(问题不在于文件的大小,而是生成文件花费了很长时间。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19132292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档