2012-09-27 17 views
12

estoy usando el siguiente código R (que utiliza el parámetro de Java para aumentar la memoria también):MemoryError en R mientras read.xlsx

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

El archivo version1.xlsx es de 13 MB de tamaño. Me sale el siguiente error:

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

Can someone help?

+0

Es por este problema que abandoné el paquete 'xlsx' y me mudé a' readxl', que es [más rápido] (http://stackoverflow.com/questions/6099243/read- an-excel-file-directamente-de-ar-script/31734198 # 31734198) – MichaelChirico

Respuesta

16

tratar de agrandar el montón de Java (suficiente), mediante el uso de:

options(java.parameters = "-Xmx1000m") 

If you are using 32 bit R make sure you are also using 32 bit Java and if you re using 64 bit R make sure you are also using 64 bit Java. If you get a Java heap space message indicating that it is out of memory see this post .

this thread puede ayudar, utilizar recolección de basura.

Referencia:
exchanging_data_between_r_and_ms_windows_apps_excel_etc
stats-rosuda-devel_001621

+1

'Si está utilizando R de 32 bits, asegúrese de que también está utilizando Java de 32 bits y si está utilizando R de 64 bits, asegúrese de que también esté utilizando 64 bit Java'. ¿Cómo se puede comprobar esto? – coip

6

Usted debe asegurarse de que se está ajustando el Java Parámetros antes cualquier JVM se inicia, es decir, antes de que cualquiera de la XLConnect o xlsx paquetes se cargan. Tenga en cuenta que en su caso está utilizando la función read.xlsx que no es una función XLConnect y, por lo tanto, no es necesario el paquete XLConnect. La alternativa XLConnect es la función readWorksheetFromFile.

+0

Precioso comentario. –

+2

¿Alguna idea de por qué se necesita tanta memoria para abrir un archivo de Excel? Tuve que establecer mi límite en 2 GB para abrir un archivo de 23 MB. – rrs

+0

Estoy con @rrs, acabo de asustar a Java después de recibir 25GB de memoria para escribir un archivo de 15MB .... – MichaelChirico

0

Pruebe esto: - Puede ser que esto pueda funcionar. Funcionó para mí

1) al descargar el archivo xlsx, utilice este download.file (fileURL, Archivo Destino = "./ lo que sea", modo = "wb")

2) Al cambiar a la regularidad R, not R Studio,

Cuestiones relacionadas