簡體   English   中英

使用load.ffdf將ff / ffbase文件加載到R會話中

[英]Loading ff / ffbase files into R session with load.ffdf

我有一個很大的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.ffdfload.ffdf函數,但是並沒有給我任何簡單的解決方法。

背景:我最初將數據幀custTrans保存到默認的./ffdb目錄。 我實際上希望它們位於目錄./custTrans ,因此我使用move.ffdf來移動文件。 列文件已移動,但.RData.Rprofile文件未移動。 我嘗試從./ffdb目錄中加載數據,還將.RData.Rprofile文件復制到./custTrans目錄中,然后在其中運行load.ffdf 我也嘗試將數據文件移回./ffdb目錄。 錯誤消息是相同的。

我找到了解決該問題的部分方法。 我現在可以使用readBin讀取原始ff文件。 由於ffdf 加載到搜索路徑中,因此可以使用它來查看列中的特定數據類型以及列長。 打印對象會給我信息。

custTrans

然后, readBin (根據上面打印的信息設置了whatn將讀取文件。 然后可以使用標准方法將它們合並回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))

顯然,這是假定所有這些都適合內存。 (不是文件的大小成為問題,但是生成文件花費了很長時間。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM