R中的MemoryError,而read.xlsx

时间:2012-09-27 16:01:10

标签: java r out-of-memory heap r-xlsx

我正在使用以下R代码(利用Java参数来增加内存):

library(xlsx)
options(java.parameters = "-Xmx1g")
library(XLConnect)
NiVe <- read.xlsx("version1.xlsx",1)

version1.xlsx文件大小为13 MB。我收到以下错误:

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  java.lang.OutOfMemoryError: Java heap space

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:18)

尝试使用:

增加java堆大小(足够)
options(java.parameters = "-Xmx1000m")
  

如果您使用32位R,请确保您还使用32位Java和   如果你使用64位R,请确保你也使用64位Java。如果   你得到一个Java堆空间消息,表明它是内存不足   见this post

this thread可以帮助您使用垃圾收集。

<强>参考:
exchanging_data_between_r_and_ms_windows_apps_excel_etc
stats-rosuda-devel_001621

答案 1 :(得分:7)

您应确保在任何JVM初始化之前设置Java参数,即在加载XLConnect或xlsx软件包之前。请注意,在您的情况下,您使用的是 read.xlsx 函数,该函数不是XLConnect函数,因此不需要XLConnect包。 XLConnect替代方案是函数 readWorksheetFromFile

答案 2 :(得分:0)

试试这个: - 可能这可行。它对我有用

1)下载xlsx文件时,请使用此文件 download.file(fileURL,destfile =&#34; ./ what&#34;,mode =&#34; wb&#34;)

2)切换到常规R,而不是R Studio,