2014-11-26 8 views
8

मुझे फ़ोल्डरों की सूची में एक फ़ाइल पढ़नी है और आर में डेटा को सहेजना है, मैं अपने परीक्षण डेटा के लिए निम्न कोड का उपयोग करता हूं और यह काम करता है। जब मैं तो वास्तविक डेटा के लिए कोड का उपयोग मैं इस त्रुटि मिलती है
त्रुटि: OutOfMemoryError (जावा): जी सी भूमि के ऊपर सीमा पार कर से कहा जाता है: शीर्ष स्तरीयOutOfMemoryError (जावा) को कैसे ठीक करें: जीसी ओवरहेड सीमा आर में पार हो गई है?

यह मैं अपने परीक्षण डेटा

के लिए क्या किया है है
parent.folder <- "C:/Users/sandesh/Desktop/test_R" 
sub.folder <- list.dirs(parent.folder, recursive =TRUE)[-1] 
file <- file.path(sub.folder, "sandesh1.xlsx") 
library(xlsx) 
library(plyr) 
fun <- function(file) { 
    df <- read.xlsx(file, sheetIndex=1) 
} 
df.big <- ldply(file, fun) 

उत्तर

17

यह राजवा में एक आम समस्या है। एक्सएलकनेक्ट प्रलेखन में इसका उत्तर दिया गया है जो xlsx लाइब्रेरी के समान एक्सेल से जुड़ने के लिए आरजेवा का भी उपयोग करता है। मैं here से बोली:

"इस तथ्य को XLConnect (xlsx के लिए एक ही) आदेश यह एक फाइल करने के लिए लिखने के लिए अपने पूरे डेटा JVM के लिए खत्म हो आपत्ति प्रतिलिपि करने की आवश्यकता और JVM प्रारंभ हो गया है कि के कारण होता है । इसके स्मृति आकार पर नियत ऊपरी सीमा के साथ इस राशि को बदलने के लिए, आप बस की तरह आर के JVM के लिए मानकों को पारित कर सकते हैं आप कर सकते हैं rJava के विकल्प समर्थन के माध्यम से एक कमांड लाइन जावा प्रक्रिया के लिए:

options(java.parameters = "- Xmx1024m") 

ध्यान दें, तथापि , कि इन मानकों का मूल्यांकन प्रति आर सत्र में एक बार किया जाता है जब JVM को प्रारंभ किया जाता है - यह आमतौर पर ओ होता है nce आप जावा समर्थन का उपयोग करने वाले पहले पैकेज को लोड करते हैं, इसलिए आपको इसे जितनी जल्दी होनी चाहिए। "

के रूप में यह ऊपर उल्लेख किया गया है किसी भी लाइब्रेरी लोड करने से पहले अपनी स्क्रिप्ट की शुरुआत में विकल्प समारोह चलाने के लिए और अगर आप इसे Rstudio के माध्यम से चल रहे हैं सुनिश्चित करें कि आप उसे पुन: प्रारंभ करने से पहले आप स्क्रिप्ट चलाने बनाते हैं।

इसके अलावा, कृपया ध्यान दें कि यह अभी भी निश्चित नहीं है कि यह भी उस फ़ाइल के आकार के आधार पर काम करेगा जो आप पार्स करने की कोशिश कर रहे हैं।

+1

LyzandeR, उत्तर के लिए धन्यवाद। मैंने आपके द्वारा सुझाए गए विकल्प का उपयोग किया और अभी भी वही त्रुटि मिली। मुझे openxlsx नामक एक और पैकेज मिला जो मुझे लगता है कि जेएमवी निर्भर पैकेज जैसे xlsx या XLConnect के लिए एक अच्छा विकल्प माना जाता है। इसलिए, जब मैंने openxlsx पैकेज का उपयोग किया, तो स्क्रिप्ट को त्रुटि संदेश उत्पन्न किए बिना निष्पादित किया जाता है, हालांकि, किसी कारण से, परिणाम डेटासेट पूरी तरह से अलग है .. वे एक्सेल में किसी के साथ दूरस्थ रूप से मेल नहीं खाते हैं। तो .. मेरे सिर खरोंच से। – poshan

+0

हाँ। मुझे भी वही त्रुटि थी और उपर्युक्त काम करता था, लेकिन मेरा एक सहयोगी उपरोक्त के साथ इसे हल नहीं कर सका। यही कारण है कि मैंने कहा कि यह काम नहीं कर सकता है। जाहिर है, यह केवल कुछ मामलों के लिए काम करता है और फ़ाइल/जावा संस्करण/आर संस्करण/कंप्यूटर चश्मा इत्यादि के अनुसार। आप xlsx लाइब्रेरी या gdata लाइब्रेरी या रेक्ससेल लाइब्रेरी भी आज़मा सकते हैं। [यहां] जांचें (http://www.r-bloggers.com/a-million-ways-to-connect-r-and-excel/)। उनमें से एक काम कर सकता है। आमतौर पर, वे सभी Rjava का उपयोग हालांकि। इसके अलावा, अगर आप 32-बिट मशीन पर काम कर रहे हैं जो एक कारण है तो यह भी विफल रहता है। – LyzandeR

संबंधित मुद्दे