有沒有一種方法可以將bigmemory軟件包中scan()和read.big.matrix()的使用組合起來,以讀取200 MB .csv使用混合類型列的文件,以便結果是包含整數,字符和數字列的數據框?如何使用bigmemory軟件包加載混合類型的大型csv文件
回答
根據幫助文件,沒有。
文件只能包含一個原子類型(例如全部整數)。 您,用戶應該知道您的文件是否有行名稱和/或列名爲 ,並且各種選項組合應該有助於 獲取所需的行爲。
我不熟悉這個包/函數,但是在R中,矩陣只能有一個原子類型(不像data.frames)。
謝謝你的兩分錢。在這個博客上,http://joshpaulson.wordpress.com/2010/12/20/michael-kane-on-bigmemory/有人提出了一種解決方法來限制只有一種原子類型的矩陣(這是一個被大的特性所繼承的特性。矩陣)就是使用scan()。我希望有人能夠從bigmemory包中分享他們的經驗,特別是閱讀混合類型的列以及他們是否使用過scan()。 – Lourdes
也許你可以在處理階段做到這一點,但我想證明是錯誤的(sensu @Iterator)。 –
爲此嘗試使用ff包。
library(ff)
help(read.table.ffdf)
函數「read.table.ffdf」讀取分離平面文件到「ffdf」 目的,非常像(和使用)「函數read.table」。它也可以用 與任何便利包裝(如read.csv)一起使用,併爲R的常用包裝 提供其自己的便利包裝(例如,'read.csv.ffdf') 。
對於200Mb,它應該是這樣簡單的任務。 (對於大得多的文件,可能需要調查一些配置選項,具體取決於您的機器和操作系統)。
啊,這輩子有些事情是不可能的,有一些是被誤解的,會導致不愉快的情況。 @羅曼是正確的:一個矩陣必須是一個原子類型。這不是一個數據框。
由於矩陣必須是一種類型,因此嘗試斯諾克bigmemory
來處理多種類型本身就是一件壞事。它可以完成嗎?我不會去那裏。爲什麼?因爲一切都會假設它正在獲得一個矩陣,而不是一個數據幀。這會導致更多的問題和更多的悲傷。
現在,您可以做的是確定每個列的類型,並生成一組不同的bigmemory文件,每個文件都包含特定類型的項目。例如。 charBM =字符大矩陣,intBM =整數大矩陣,依此類推。然後,您可能會開發出一個包裝器,它可以生成所有這些數據框架。儘管如此,我仍然不建議:將不同的項目視爲自己的項目,或者儘可能強制同質化,而不是嘗試製作大型數據框格里芬。
@mdsumner正確提示ff
。另一種存儲選項是HDF5,您可以通過R.中的ncdf4
訪問它。不幸的是,這些其他軟件包不如bigmemory
那麼愉快。
感謝迭代器。你是對的,其他軟件包不如大內存那麼愉快。 – Lourdes
最好的解決方案是逐行讀取文件並解析它,這樣讀取過程將佔用大量線性的內存。
歡迎來到StackOverflow!但是,這並沒有回答這個問題,它特別針對大內存軟件包 –
- 1. 合併大型csv文件
- 2. 如何下載大型CSV文件?
- 3. 使用大型csv文件
- 4. 如何使用java高效下載大型csv文件
- 5. 如何使用子陣列(混合類型)文件數組?
- 6. 使用Django和轉換將大型CSV文件加載到MySQL
- 7. 如何使用Scala Stream類讀取大型CSV文件?
- 8. R.0.0中的bigmemory軟件包
- 9. 加載大型XML文件
- 10. 使用大量混合自我類型
- 11. 如何將混合型對象導出到csv文件?
- 12. 與CarrierWave混合文件類型
- 13. 使用phpMyAdmin導入大型csv文件
- 14. MATLAB:如何導入具有混合數據類型的多個CSV文件
- 15. CSV文件的總類型
- 16. 閱讀大型csv文件
- 17. 閱讀大型CSV文件
- 18. 導入大型CSV文件
- 19. 打開大型CSV文件?
- 20. WiX軟件包mainupgrade上的軟件包類型無效
- 21. 在處理.csv文件時,OLEDB如何處理混合數據類型?
- 22. 與Chrome軟件包應用關聯的文件類型
- 23. 如何加載多個csv文件並將它們混合使用
- 24. 爲混合數據類型設置enctype屬性,包括文件
- 25. 使用內部連接合並2個大型csv文件
- 26. 加載文件到csv文件從桌面到大型機平面文件
- 27. 使用StreamingHttpResponse流式傳輸和下載大型CSV文件
- 28. 加載大型JSON文件的問題
- 29. 用熊貓加載大的CSV文件
- 30. Vb.Net泛型與重載事件混合
是否必須是bigmemory軟件包?我發現ff對這類東西更有用 – mdsumner
@mdsumner在正確的軌道上。它甚至需要文件支持嗎?對於200MB,我只是閱讀它,使用它,然後將它保存爲一個或多個BM文件(或者如果您願意,可以用'ff'來保存)。 – Iterator