13

我正在使用以下 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

有人可以帮忙吗?

4

3 回答 3

19

尝试增加java堆大小(足够),通过使用:

options(java.parameters = "-Xmx1000m")

如果您使用的是 32 位 R,请确保您也在使用 32 位 Java;如果您使用的是 64 位 R,请确保您也在使用 64 位 Java。如果您收到指示内存不足的 Java 堆空间消息,请参阅这篇文章

这个线程可以帮助你,使用垃圾收集。

参考:
exchanging_data_between_r_and_ms_windows_apps_excel_etc
stats-rosuda-devel_001621

于 2012-09-27T16:20:55.090 回答
7

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

于 2012-09-28T15:55:46.503 回答
0

试试这个: - 可能这可以工作。它对我有用

1)下载xlsx文件时,使用这个download.file(fileURL, destfile="./whatever", mode="wb")

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

于 2015-02-05T20:51:43.650 回答