看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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
celestialgod: 那麼大的資料量還是直接用資料庫省事 06/01 16:18
cywhale: 記得看過用sqldf把檔案當暫時資料庫可以避掉記憶體不足 06/01 16:35
jklkj: html 這個網站有看到作者用樓上說的sqldf,而且row數量也相 06/01 17:15
jklkj: 當多(應該夠我用一陣子了),想問一下這SQLDF是要怎麼當暫時 06/01 17:16
jklkj: 資料庫,感謝 06/01 17:16
cywhale: 我剛google一下 這篇 http://goo.gl/soE8XA 06/01 17:23
cywhale: 我自己沒用過,我也是跟一樓C大說的,直接用資料庫.. 06/01 17:24
cywhale: 如果資料都是同一種(如數值)或可以轉換,也可以用 06/01 17:25
cywhale: bigmemory in R.. 06/01 17:26
jklkj: 不好意思,我沒用過bigmmory或ff,這兩個套件執行速度會很 06/04 10:23
jklkj: 慢嗎?我是指跟沒用比的話 06/04 10:23
jklkj: 然後我用了sqldf的方法結果資料跑不出來,即便是完全copy 06/04 10:24
celestialgod: ff或bigmemory都用硬碟讀取,速度看硬碟讀取速度 06/04 11:15
celestialgod: 用硬碟讀取,除非用SSD,不然應該快不起來 06/04 11:15
celestialgod: 畢竟記憶體速度太快 06/04 11:15
cywhale: 是因原po說記憶體不夠才推此法,但其實R外cat應該最好.. 06/04 14:27