2012-09-27 9 views
12

Sto usando il seguente codice R (che utilizza il parametro di Java per aumentare la memoria pure):MemoryError in R mentre read.xlsx

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

Il file version1.xlsx è 13 MB. Ho ricevuto il seguente errore:

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

Qualcuno può aiutare?

+0

È a causa di questo problema che ho rinunciato al pacchetto 'xlsx' e mi sono spostato a' readxl', che è [più veloce] (http://stackoverflow.com/questions/6099243/read- an-excel-file-direttamente-da-ar-script/31734198 # 31734198) – MichaelChirico

risposta

16

cercare di aumentare dimensioni java Heap (sufficiente), utilizzando:

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 possono aiutare, per usare Garbage Collection.

Riferimento:
exchanging_data_between_r_and_ms_windows_apps_excel_etc
stats-rosuda-devel_001621

+1

'Se si utilizza 32 bit R assicurati di utilizzare anche Java a 32 bit e se stai usando 64 bit R assicurati di utilizzare anche 64 bit Java'. Come si controlla questo? – coip

6

È necessario assicurarsi che si sta impostando il Java parametri prima qualsiasi JVM viene inizializzato, vale a dire prima che sia la XLConnect o xlsx pacchetti vengono caricati. Nota che nel tuo caso stai usando la funzione read.xlsx che non è una funzione XLConnect e quindi il pacchetto XLConnect non è richiesto. L'alternativa XLConnect è la funzione readWorksheetFromFile.

+0

Commento prezioso. –

+2

Qualche idea sul perché ci vuole così tanta memoria per aprire un file Excel? Ho dovuto impostare il limite a 2 GB per aprire un file di 23 MB. – rrs

+0

Sono con @rrs, ho appena avuto problemi con Java dopo aver ricevuto 25 GB di memoria per scrivere file da 15 MB .... – MichaelChirico

0

Prova questo: - Potrebbe essere questo può funzionare. Ha funzionato per me

1) durante il download del file xlsx, utilizzare questo download.file (fileURL, destfile = "./ qualunque", mode = "WB")

2) passato a regolare R, not R Studio,

Problemi correlati