2012-09-27 12 views
12

मैं निम्नलिखित आर कोड का उपयोग कर रहा है (जो स्मृति में वृद्धि करने के रूप में अच्छी तरह जावा पैरामीटर का इस्तेमाल करता है):MemoryError जबकि read.xlsx

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 

क्या कोई मदद कर सकता है?

+0

यह इस समस्या के कारण है जिसे मैंने 'xlsx' पैकेज पर छोड़ दिया है और 'readxl' में स्थानांतरित हो गया है, जो [तेज़] है (http://stackoverflow.com/questions/6099243/read- an-excel-file-straight-from-ar-script/31734198 # 31734198) – MichaelChirico

उत्तर

16

(पर्याप्त) जावा ढेर आकार बढ़ाने के लिए, का उपयोग करके प्रयास करें:

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, आप मदद कर सकते हैं कचरा संग्रह का उपयोग करें।

संदर्भ:
exchanging_data_between_r_and_ms_windows_apps_excel_etc
stats-rosuda-devel_001621

+1

'यदि आप 32 बिट आर का उपयोग कर रहे हैं तो सुनिश्चित करें कि आप 32 बिट जावा का भी उपयोग कर रहे हैं और यदि आप 64 बिट आर का उपयोग कर रहे हैं तो सुनिश्चित करें कि आप भी इसका उपयोग कर रहे हैं 64 बिट जावा'। यह कैसे जांचता है? – coip

6

आप सुनिश्चित करें कि आप जावा सेट कर रहे हैं मानकों कि से पहले किसी भी JVM से पहले या तो XLConnect आरंभ नहीं हो जाता है, अर्थात या XLSX संकुल लोड किए गए हैं बनाना चाहिए। ध्यान दें कि आपके मामले में आप read.xlsx फ़ंक्शन का उपयोग कर रहे हैं जो XLConnect फ़ंक्शन नहीं है और इसलिए XLConnect पैकेज की आवश्यकता नहीं है। XLConnect विकल्प फ़ंक्शन readWorksheetFromFile फ़ंक्शन है।

+0

बहुमूल्य टिप्पणी। –

+2

कोई विचार क्यों एक्सेल फ़ाइल खोलने के लिए इतना मेमोरी लेती है? 23 एमबी फ़ाइल खोलने के लिए मुझे अपनी सीमा 2 जीबी तक सेट करनी पड़ी। – rrs

+0

मैं @ आरआरएस के साथ हूं, 15 एमबी फाइल लिखने के लिए 25 जीबी मेमोरी देने के बाद जावा फ्रीक था .... – MichaelChirico

0

इसे आज़माएं: - यह काम कर सकता है। यह मेरे लिए काम किया

1) जब xlsx फ़ाइल को डाउनलोड करने, इस download.file (fileURL, destfile = का उपयोग "./ जो कुछ भी", मोड = "पश्चिम बंगाल")

2) नियमित रूप से अनुसंधान पर स्विच किया गया, आर स्टूडियो नहीं,