जब एक library(foo)
मूल्यांकन करता है, आर पहले स्मृति में पैकेज foo लोड करता है, और फिर search()
पथ के लिए पैकेज जुड़ जाता है। अन्य ऑपरेशंस, जैसे कि loadNamespace("foo")
या foo::fun
, या जब कोई तृतीय पक्ष इंगित करता है कि यह foo से प्रतीक आयात करता है, तो पैकेज लोड करें लेकिन इसे खोज पथ से संलग्न न करें। चूंकि आर एक गतिशील भाषा है, इसलिए प्रत्येक फ़ंक्शन कॉल में मिलान करने वाले पहले को खोजने के लिए उपलब्ध प्रतीकों का एक ट्रैवर्सल शामिल होता है। यह कुशल है, और अटैचमेंट नाम विवादों को अलग करके, अनावश्यक नाम विवादों से बचाता है और इसलिए खोज के लिए प्रतीकों की संख्या को प्रतिबंधित करता है।
उपरोक्त उदाहरण में, उपकरण पैकेज लोड किया गया है, लेकिन अभी तक संलग्न नहीं है। जब कोई आर कमांड प्रॉम्प्ट पर प्रतीक टाइप करता है, तो आर पहले वैश्विक नाम स्थान में प्रतीक को देखता है (पहला तत्व search()
द्वारा लौटाया गया है और यदि search()
के लगातार तत्वों में नहीं मिला है। चूंकि उपकरण संलग्न नहीं हैं, इसलिए प्रतीकों में उपकरण हल कर रहे हैं नहीं।
> file_ext
Error: object 'file_ext' not found
बहरहाल, एक tools::file_ext
के साथ उन्हें की पहुंच है, चाहे उपकरण या नहीं खोज राह पर है।
स्रोत
2013-02-20 22:04:15
इसका उन पैकेज है कि 'अन्य संकुल द्वारा suggested' रहे हैं, और नहीं कर रहे हैं लोड किया गया (सीधे उपयोगकर्ता द्वारा एक्सेस किया जाना चाहिए, मुझे जोड़ना चाहिए) – Arun