मैंने लिनक्स मशीन पर hdf5 पैकेज सफलतापूर्वक स्थापित किया है। अब मैं एक लूप में बड़ी संख्या में एचडीएफ 5 फाइलों से डेटा में पढ़ना चाहता हूं और एक समय श्रृंखला बना सकता हूं। प्रत्येक hdf5 फ़ाइल एक अलग समय के अनुरूप है। कई फाइलों में पढ़ने के बाद (केवल 1000 से अधिक) आर कहता है कि बहुत सी फाइलें खुली हैं। मैं उन्हें बंद करने का एक तरीका ढूंढना चाहता हूं ताकि लूप जारी रहे। यहाँ कोड है:आर में लोड होने के बाद मुझे एक hdf5 फ़ाइल कैसे बंद करनी चाहिए?
fdate <- "200605312355" # the first date for my test loop
fmax <- 1400
arr <- vector()
for (i in 1:fmax){
fname <- paste(fdate,"_.h5") # path of h5 file
fid <- hdf5load(fname) # fid = NULL
arr[i] <- somevariable$data_array[lon,lat]
# would like to close the file here
fdate <- newdate(fdate,60*5) # a function that increments the date by seconds.
}
HDF5 पैकेज समारोह hdf5cleanup, जो लगता है कि यह चीजों को साफ कर सकते हैं लग रहा है शामिल है लेकिन यह एक फ़ाइल पहचानकर्ता की आवश्यकता है। उपरोक्त मेरे कोड में फीड शून्य लौटाता है। इसके बजाय फ़ाइल नाम डालने का प्रयास i.e. hdf5cleanup (fname) आर को निरस्त करने के लिए प्रेरित करता है। शायद hdf5load फ़ाइल को बंद करना और विफल रहता है। यदि ऐसा है, तो सिस्टम() कमांड या अन्यथा जारी करके कनेक्शन को बंद करने का कोई तरीका है?
संयोग से, शोकनेक्शन() कुछ भी नहीं देता है, ठीक है, सचमुच केवल हेडर नाम "वर्णन वर्ग मोड टेक्स्ट आइसोपेन पढ़ सकते हैं" लिख सकते हैं।
मेरा प्रश्न संक्षिप्त में: मैं hdf5load() के साथ लोड करने के बाद आर में एक hdf5 फ़ाइल से कनेक्शन कैसे बंद करूं?
मैं 'आर' निरस्त कर रहा हूं, आपको' hdf5' पैकेज के रखरखाव से संपर्क करना चाहिए क्योंकि ऐसा नहीं होना चाहिए। रखरखाव भी फाइलों को बंद करने के लिए आपको सही आमंत्रण बताने में सक्षम हो सकता है। –