[問題] 記憶體不足

看板R_Language作者 (誠實可靠小郎君)時間8年前 (2016/06/01 15:53), 編輯推噓2(2015)
留言17則, 3人參與, 最新討論串5/7 (看更多)
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) 效能諮詢(我想讓R 跑更快) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 目前我要把大概幾千萬筆的資料(目前只跑到2000多萬筆)放進R去, 應該會有兩三個dataframe,每個dataframe都有數千萬筆 打算把R當作資料庫,不管是join或是一些資料的整理 我把資料一直rbind下去,超過兩千多萬筆之後就會出現記憶體不足的問題 想請問這樣的問題除了直接加記憶體以外(因為是公司的電腦) 有別的方法嗎? [程式範例]: 程式範例就是很簡單的 sale <- rbind(sale1, sale) 錯誤訊息如下 error: cannot allocate vector of size 256.0 mb 我有找到一些解決的方法是加ram(其實我也很想加到32G)、用64bit(感覺我已經在用了) 想請問一下有別的解決方法嗎? [環境敘述]: R version 3.3.0 (2016-05-03) -- "Supposedly Educational" Copyright (C) 2016 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) [關鍵字]: 記憶體 不足 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.23.167.43 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1464767586.A.407.html

06/01 16:18, , 1F
那麼大的資料量還是直接用資料庫省事
06/01 16:18, 1F

06/01 16:35, , 2F
記得看過用sqldf把檔案當暫時資料庫可以避掉記憶體不足
06/01 16:35, 2F

06/01 17:15, , 4F
html 這個網站有看到作者用樓上說的sqldf,而且row數量也相
06/01 17:15, 4F

06/01 17:16, , 5F
當多(應該夠我用一陣子了),想問一下這SQLDF是要怎麼當暫時
06/01 17:16, 5F

06/01 17:16, , 6F
資料庫,感謝
06/01 17:16, 6F

06/01 17:23, , 7F
我剛google一下 這篇 http://goo.gl/soE8XA
06/01 17:23, 7F

06/01 17:24, , 8F
我自己沒用過,我也是跟一樓C大說的,直接用資料庫..
06/01 17:24, 8F

06/01 17:25, , 9F
如果資料都是同一種(如數值)或可以轉換,也可以用
06/01 17:25, 9F

06/01 17:26, , 10F
bigmemory in R..
06/01 17:26, 10F

06/04 10:23, , 11F
不好意思,我沒用過bigmmory或ff,這兩個套件執行速度會很
06/04 10:23, 11F

06/04 10:23, , 12F
慢嗎?我是指跟沒用比的話
06/04 10:23, 12F

06/04 10:24, , 13F
然後我用了sqldf的方法結果資料跑不出來,即便是完全copy
06/04 10:24, 13F

06/04 11:15, , 14F
ff或bigmemory都用硬碟讀取,速度看硬碟讀取速度
06/04 11:15, 14F

06/04 11:15, , 15F
用硬碟讀取,除非用SSD,不然應該快不起來
06/04 11:15, 15F

06/04 11:15, , 16F
畢竟記憶體速度太快
06/04 11:15, 16F

06/04 14:27, , 17F
是因原po說記憶體不夠才推此法,但其實R外cat應該最好..
06/04 14:27, 17F
文章代碼(AID): #1NJfHYG7 (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1NJfHYG7 (R_Language)