2011-12-14 16 views
6

मैं एक पैकेज 'mypackage' बनाया है में एक समारोह को परिभाषित (एक namespace के साथ 'mypackage' संलग्न) इस पैकेज में एक समारोह है कि मैं किसी के साथएक विशिष्ट नाम स्थान

'myfunction' 

या

कॉल कर सकते हैं है
'mypackage::myfunction' 

अब मैं एक और संस्करण (अपडेटेड) द्वारा Myfunction को प्रतिस्थापित करना चाहता हूं।

मैं

source(path) 

जहां पथ जहाँ अद्यतन 'myfunction'

परिभाषित किया गया है अब एक फाइल मैं आर 2.14.x में ले जाया गया का मार्ग है और इस प्रणाली काम नहीं करता है क्योंकि जाहिरा तौर पर करते थे आर पहले नाम की जांच करता है यदि एक ही नामस्थान के अंदर कोई फ़ंक्शन है, और यदि कोई है, तो यह इसका उपयोग करता है, न कि दूसरों को।

मेरा प्रश्न: मैं अद्यतन फ़ंक्शन को उसी नामस्थान में पैकेज के रूप में कैसे धक्का दे सकता हूं?

उत्तर

7

?assignInNamespace देखें। उदाहरण के लिए

assignInNamespace("myfunction", foo, "mypackage") 

नाम स्थान "mypackage" में "myfunction" नामित वस्तु को वस्तु foo आवंटित करेगा। foo जो भी ऑब्जेक्ट आप चाहते हैं, myfunction भी हो सकता है लेकिन आपको यह सुनिश्चित करने के लिए सावधान रहना होगा कि आप mypackage::myfunction पर कॉल करें यदि आपके पास वैश्विक पर्यावरण/कार्यक्षेत्र में myfunction भी है।

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