r - Using approxfun in a package -
लगभग
और approxfun
के लिए मदद में निम्न चेतावनी शामिल है: < / P>
चेतावनी
approxfun द्वारा दिया गया मान R के वर्तमान संस्करण में कोड के संदर्भ में होता है: इसे सहेजा और एक अलग आर सत्र में लोड करने का इरादा नहीं है। यह आर> = 3.0.0 के लिए सुरक्षित है।
मुझे पूरा यकीन नहीं है कि इसका अर्थ क्या है, खासकर "आर> = 3.0.0 के लिए सुरक्षित" होने के बारे में अंतिम भाग। मैंने कुछ कोड लिखा है जिसमें approxfun
के साथ बनाई गई फ़ंक्शन शामिल हैं I क्या अब उस कोड को पैकेज में रखा जाना सुरक्षित है? मैंने इसे परीक्षण किया है और यह काम करने लगता है, लेकिन मुझे नहीं पता कि मैं इस पर भरोसा कर सकता हूं या नहीं।
यह विंडोज़ 7 64-बिट पर आर 3.1.1 के साथ है।
सटीक कोड इस तरह से है मेरे पास फ़ंक्शन वैल्यू पर कुछ डेटा है, और मैं अंतर्निहित फ़ंक्शन (जो मेरे पास स्रोत कोड नहीं है) का अनुमान लगा देना चाहते हैं।
.table & lt; - read.table (text = "xy 10,0 150 37,8 147 65,6 145 93,3 142", हैडर = TRUE) # धन मूल # इस समारोह पैकेज च & lt निर्यात किया जा रहा है में कई अधिक लाइनों; - साथ (.table, approxfun (एक्स, वाई))
<घंटा>
संपादित करें: धन्यवाद कि जिसके परिणामस्वरूप फ़ंक्शन को कॉल .approxfun
एक unexported समारोह में है जो उनका कहना है के लिए @MrFlick को आँकड़े पैकेज तो यह संभव है कि आर के भविष्य के संस्करण को इस समारोह को छोड़ देना चाहिए, हालांकि यह कम से कम अल्पावधि में संभवतः संभव नहीं है हालांकि एक और मुद्दा है। मैं approxfun
के स्रोत पर करीब से देखता हूं, और यह निम्नलिखित पंक्तियों के साथ समाप्त होता है:
.... x & lt; - as.double (x) y & lt; - as.double (y) .Call (C_ApproxTest, एक्स, वाई, विधि, च) समारोह (v) .approxfun (एक्स, वाई, वी, विधि, yleft, yright, च)}
< / pre>और
.approxfun
है बस:समारोह (एक्स, वाई, वी, विधि, yleft, yright, च) .Call (C_Approx, X, y, v, method, yleft, yright, f)
ऐसा लगता है कि
approxfun
कॉल कुछ डेटा आरंभ करने के लिए सी कोड को संकलित करता है, और। Approxfun
तब उस डेटा का उपयोग करता है अगर मैं अपने पैकेज किए गए कोड मेंapproxfun
को कॉल करता हूं, तो क्या मैं अब भी उस प्रारंभिक सी कॉल पर निर्भर रह सकता हूं?
चेतावनी अधिक है यदि आप save ()
और load ()
पर approx
द्वारा लौटा फ़ंक्शन पर उपयोग करने के लिए थे। मज़ा। अपने नमूना डेटा, यदि आप
च # समारोह (v) # .approxfun (एक्स, वाई, वी, विधि, yleft, yright, च) # & LT; बाईटकोड: 0x10a20d948 & gt; # & Lt; पर्यावरण: 0x10a20d0d8 & gt;
आप देख सकते हैं कि यह केवल कॉल कोड के साथ एक निचले स्तर (संयुक्त राष्ट्र-निर्यात) फ़ंक्शन कॉल कर रहा है। एफ़्रोक्सफ़न यह फ़ंक्शन जरूरी नहीं है कि इसे डायरेक्टरी कहा जाना चाहिए और भविष्य के आर संस्करणों में बदल सकता है। फ़ंक्शन पास किए गए मान फ़ंक्शन के वातावरण में संग्रहीत किए जाते हैं। ध्यान दें:
ls.str (envir = environment (f)) # f: num 0 # method: int 1 # x: num [1: 4] 10 37.8 65.6 93.3 # y: num [1: 4] 150 147 145 142 # yleft: logi एनए # yright: logi एनए
मुझे यकीन है कि नहीं करता है, तो आर के पुराने संस्करणों के बाड़े सामग्री भंडारण या नहीं के साथ एक समस्या थी हूँ ।
लेकिन जब तक आप approx ()
कॉल कर रहे हैं और एक मान लौट रहे हैं, तो आपको ठीक होना चाहिए। चेतावनी सिर्फ एक आर छवि डेटा फ़ाइल में परिणामी फ़ंक्शन को संरक्षित करने के बारे में है।
Comments
Post a Comment