2011-03-30 16 views
7

मैंने एक आर पैकेज बनाया है, लेकिन मैं नहीं चाहता कि मेरे उपयोगकर्ताओं को इसे इस्तेमाल करने से पहले इसे इंस्टॉल करना पड़े।मैं आर में इसे इंस्टॉल किए बिना पैकेज कैसे लोड करूं?

क्या इसे इंस्टॉल किए बिना पैकेज लोड करने का कोई तरीका है?

उदाहरण के लिए, अगर मैं एक पैकेज mypackage.tar.gz है, वहाँ

library("mypackage.tar.gz") 

की तरह कुछ है?

+0

आप क्यों नहीं चाहते कि लोगों को अपना पैकेज इंस्टॉल करना पड़े? और, नहीं, मुझे नहीं लगता कि आप जो चाहते हैं उसे करना संभव है - आपको काम करने के लिए 'पुस्तकालय()' के लिए कहीं भी स्थापित फाइलों की आवश्यकता है और यही है, AFAIK, वास्तव में आर में एक पैकेज का उपयोग करने का एकमात्र तरीका है आप सभी आर कोड को मौजूदा सत्र में, यहां तक ​​कि एक पर्यावरण में भी स्रोत कर सकते हैं, इसलिए यह * एक पैकेज की तरह दिखता है, लेकिन कोई मदद नहीं है, निर्भरता की कोई लोडिंग नहीं है। –

+2

-1 आर-सहायता के लिए क्रॉस पोस्टिंग के लिए –

+2

@Grothendieck आप मुझे किसी अन्य साइट पर उत्तर खोजने की कोशिश करने के लिए नीचे गिर रहे हैं ??? – lindelof

उत्तर

9

मैं सुझाव देने के "कोरस" में शामिल हो जाऊंगा कि आपको वास्तव में पैकेज इंस्टॉल करना चाहिए।

कहा जा रहा है कि आप हैडली के devtools पैकेज पर एक नज़र डाल सकते हैं, जो आपको अपने वैश्विक कार्यक्षेत्र में डंप किए बिना वर्कस्पेस में पैकेज लोड करने देगा।

पैकेज को untar'd/unzipped होना चाहिए और मानक आर पैकेज संरचना का पालन करना होगा।

इस काम के लिए, हालांकि, आपके उपयोगकर्ताओं को devtools पैकेज स्थापित करना होगा, इसलिए ... मुझे यकीन नहीं है कि यह आपके लिए किसी प्रकार की जीत है।

3

आप केवल कोड के बिना इसे स्थापित किया जा रहा लोड करने के लिए की जरूरत है, कच्चे आर स्क्रिप्ट और स्रोत ले:

source(myScript.R) 

आप विभिन्न कार्यों है, तो आप एक अनुसंधान स्क्रिप्ट है कि बस सभी को लोड करता है बना सकते हैं आवश्यक स्रोत फाइलें। विकास करते समय मैं कभी-कभी क्या करता हूं, मेरे सभी कार्यों का नाम F_some_function.R और मेरी कक्षाएं Class_some_function.R। यह मैं स्रोत के लिए कोड निम्नलिखित युक्त एक मुख्य फ़ाइल की अनुमति देता है:

funcdir <- "C:/Some/Path" 
files <- dir(funcdir) 
srcfiles <- c(grep("^Class_",dir(funcdir),value=T), 
       grep("^F_",dir(funcdir),value=T) 
) 

for(i in paste(funcdir,srcfiles,sep="/")) source(i) 

आप उन्हें tarred फ़ाइल के साथ मौजूद हैं, वे मुख्य फ़ाइल सोर्सिंग से पहले खुद को untar() का उपयोग कर untar कर सकते हैं।

लेकिन ईमानदारी से, कृपया एक पैकेज का उपयोग करें। आप वैश्विक वातावरण में सबकुछ लोड करते हैं (या यदि आप स्थानीय = टी का उपयोग करते हैं तो निर्दिष्ट वातावरण में), लेकिन आप पैकेज की सभी कार्यक्षमता खो देते हैं। पैकेज स्थापित करना कोई परेशानी नहीं है, और न तो हटा रहा है।

यदि यह सी ड्राइव पर अधिकार लिखने का मामला है (जो कि मेरे कैरियर में मिले पैकेज का उपयोग न करने का एकमात्र संभावित कारण है), तो कोई आसानी से एक और लाइब्रेरी स्थान सेट कर सकता है। आर 2.12 वास्तव में विंडोज़ पर यह स्वयं करता है। ?.libPaths()

+0

यहां, यहां। किसी कारण के लिए पैकेज का आविष्कार किया गया था! –

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

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