将大型R数据集导出为ex​​cel的有效方法

lok*_*art 0 python excel r export-to-excel

作为标题,我有一个包含大约13000行和255列的数据集(实际上我有超过255列,但是RODBC包似乎限制了导出到255的列数,所以我修剪了一下)需要导出到xls/xlsx文件.

我试过RODBCxlsx打包,出口都需要5分钟以上.我想知道是否还有其他更有效的方法呢?

我知道一点python(使用python连接到outlook以便在邮箱中列出电子邮件),如果有使用python导出的方式,它也受欢迎.

更新01

相当多的人建议使用csv,在我的情况下可能不太可能,因为有一个包含自由文本的字段,我无法控制在该字段中输入的字符类型,难以选择分隔符.

更新02

感谢您的建议,但我发现R包只有在数据帧相对较小的情况下才能正常运行,而且对于所有列都是字符的数据帧来说,它甚至很慢.有什么建议?

Hac*_*k-R 5

有很多选择:

  1. 使用xlsxmutliple表(你已经尝试过这个,它太慢了,我知道)
  2. 使用write.csv应该更快,并且可以通过Excel读取
  3. odbcConnectExcel2007在内使用RODBC
  4. 使用该包bigmemory可以帮助您管理大型数据帧,尤其是如果您可以将其设置为稀疏矩阵
  5. XLConnect这工作了这家伙同样的问题
  6. 使用RODBCRPostgreSQL等将其写入SQL数据库,然后在Excel中建立与DB的连接.我做了很多.这是一个相关的资源.
  7. 使用 Pandas
  8. 创建一个tab-delimited文本文件,然后将其导入Excel:write.table (table,sep="\t",quote=FALSE,row.names=FALSE,file=file.name)
  9. 使用 fread
  10. 尝试基于云的解决方案(我不确定这实际上是否会更快,但它至少会成为一个时尚的解决方案,具有额外的好处,例如提供一种安全存储数据的好方法,让您查询所需的任何内容它在任何计算机上使用Excel)
  11. RExcel
  12. XLLoop

最后,这里有一篇关于"百万种连接R和Excel的方法"的小文章,你可能觉得它很有用,不过我认为我实际上给你的选择比文章更多.

我会从最简单的解决方案开始,比如说fread,如果你仍然没有得到你想要的结果,那就按照自己的方式处理相对更复杂的解决方案.

根据项目的确切性质,您甚至可以从并行或多核处理中受益.在大多数情况下,这些都不会提高您的I/O速度,但它可以加速您的过程中发生的任何数据处理/转换,从而使您的整体数据管道更快.

Python也有很好的设备可以解决这个问题,但是里面有很多解决方案R,希望你不需要只是为了写出数据而转换语言.不过,你可以试试

  1. XlsxWriter 在恒定内存模式下,或
  2. 优化的openpyxl包的读者和作者

    如果你想尝试一个基于Python的解决方案.