2014-06-18 81 views
0

感謝您閱讀本文!重新加載`filebacked.big.matrix`與R會話崩潰

在這裏,我有R.With使用big.matrix的問題,下面的代碼:

big_matrix_object=as.big.matrix(matrix_object,backingfile='back.bin',descriptorfile='back.desc,backingpath='./path/) 

,如果我救big_matrix_object到時我重新加載它R對話會遇到.RData。而下一次如何避免這種情況?感謝您的幫助!

回答

0

R中的big_matrix_object是指向存儲在磁盤上的備份文件的指針;每次重新啓動R會話後,都必須重新連接到文件,即使之前會話的.RDATA文件已加載。幸運的是一個簡單的辦法,重新啓動後的R和重裝bigmemory包,運行:

big_matrix_object <- attach.big.matrix("./path/back.desc") 

當然這假設了big.matrix對象,並且其相關聯的備份文件,成功創建並保存在現有會話。

乾杯!

+0

謝謝你的回答,@Jeff你的意思是我應該在每次開始R會話時附加矩陣。所以當我試圖將對象保存到.RDATA時,我應該以某種方式排除大.matrix對象,這似乎不是一個非常優雅的解決方案。你有任何其他方式來處理它嗎?我找到另一個包'bigmemoryExtra',這似乎是原來的'bigmemroy'的增強,但每當我重新加載.RDATA雖然沒有會話崩潰,但big.matrix對象不再完整。 – lovelyzlf

+0

http://cran.r-project.org/web/packages/bigmemory/bigmemory.pdf –

+0

不客氣,樂意效勞。一個big.matrix由R中的一個對象組成,它只是指向數據結構,在你的情況下,它存儲在磁盤上。這是文件支持大矩陣的全部重點;它允許您創建和操作太大的數據結構以存儲在內存中(因此實際上並未加載到R工作區中)。保存工作區/數據時,不需要排除任何內容。我強烈建議您閱讀本文檔,解釋bigmemory如何管理數據(特別是第6頁):[BM](http://cran.r-project.org/web/packages/bigmemory/bigmemory.pdf) –