有没有一种方法可以将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