【发布时间】:2011-12-19 06:55:12
【问题描述】:
我尝试使用 XLConnect 包将约 30MB 的 Excel 电子表格加载到 R 中。
这是我写的:
wb <- loadWorkbook("largespreadsheet.xlsx")
大约 15 秒后,我收到以下错误:
错误:OutOfMemoryError (Java):超出 GC 开销限制。
这是 XLConnect 软件包的限制,还是有办法调整我的内存设置以允许更大的文件?
感谢任何解决方案/提示/建议。
【问题讨论】:
-
你试过其他的包吗?他们怎么了?其他人的意思是
xlsx和RExcel。查看this vignette 以获取其他资源。 -
另外,也许您可以验证问题很可能是由电子表格引起的?例如,创建一个小型电子表格并测试它是否有效。如果可行,我会从电子表格中获取越来越多的矩形,复制和粘贴,看看是否可以找到断点。也许电子表格中有一些奇怪的东西。
-
好点,XLConnect 包似乎确实适用于较小的电子表格。但是,我有兴趣在不每次都更改电子表格的情况下找到解决此问题的方法。
-
假设地说,电子表格可能存在导致 XLConnect 解析问题的问题。在这种情况下,更改 XLConnect 的内存分配将无济于事。如果您可以更改为其他文件类型,例如XLS 或 CSV,这可能会有所帮助。
-
另外,你试过增加矩形的方法吗?您可以通过 COM 连接或 Excel 中的脚本自动保存工作表。我会确保没有一些时髦的东西,比如括号/大括号、特殊的文本(例如奇怪的引号、
<或>),或者其他导致问题的东西。当然包应该能够加载数据,但是解析奇怪的格式总是一个问题。