R中的MemoryError,而read.xlsx

12 java heap r out-of-memory r-xlsx

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

library(xlsx)
options(java.parameters = "-Xmx1g")
library(XLConnect)
NiVe <- read.xlsx("version1.xlsx",1)
Run Code Online (Sandbox Code Playgroud)

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

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Cha*_*har 18

尝试使用以下命令增加java堆大小(足够):

options(java.parameters = "-Xmx1000m")
Run Code Online (Sandbox Code Playgroud)

如果您使用32位R,请确保您也使用32位Java,如果您使用64位R,请确保您也使用64位Java.如果您收到Java堆空间消息,指示内存不足,请参阅此帖子.

这个帖子可以帮助你,使用垃圾收集.

参考:
exchanging_data_between_r_and_ms_windows_apps_excel_etc
统计-rosuda-devel_001621

  • `如果您使用 32 位 R,请确保您也使用 32 位 Java,如果您使用 64 位 R,请确保您也使用 64 位 Java`。如何检查这一点? (2认同)

Mar*_*der 7

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

  • 知道为什么打开Excel文件需要这么多内存吗?我必须将我的限制设置为2 GB才能打开一个23 MB的文件. (2认同)