2012-11-06 25 views
5

यह पहले पोस्ट किए गए question पर एक फॉलोअप है। संक्षेप में, मैं स्लीडिफा नामक एक आर पैकेज लिख रहा हूं, जो कई बाहरी गैर-आर आधारित पुस्तकालयों का उपयोग करता है। मेरा पहला सवाल निर्भरताओं का प्रबंधन करने के बारे में था।आर पैकेज

कई समाधान प्रस्तावित किए गए थे, जिनमें से सबसे आकर्षक समाधान बाह्य पुस्तकालयों को एक अलग आर पैकेज के रूप में पैकेज करना था, और इसे स्लीडिफी के लिए निर्भरता बनाना था। पैकेज xlsx पैकेज के बाद यह रणनीति है, जो जावा निर्भरताओं को एक अलग पैकेज xlsxjars के रूप में पैकेज करती है।

बाहरी पुस्तकालयों को एक डाउनलोड के रूप में प्रदान करने के लिए एक बदलाव है और install_libraries स्लाइडिफ़ी के भीतर फ़ंक्शन पैकेज करता है, जो स्वचालित रूप से आवश्यक फ़ाइलों को प्राप्त करेगा और इसे पैकेज निर्देशिका में डाउनलोड करेगा। मैं update_libraries फ़ंक्शन भी जोड़ सकता हूं जो चीजों को बदलने पर अपडेट होगा।

मेरा सवाल है, बाहरी पुस्तकालयों के लिए सीआरएएन नृत्य करने के लिए कोई विशिष्ट फायदे हैं जो आर आधारित नहीं हैं। क्या मुझसे कोई चूक हो रही है?

+2

द्वारा वापस नहीं रखा जाता 'install_libraries' हैक मत करो। केंद्रीय रेपो और वितरण तंत्र के रूप में सीआरएएन का उपयोग करना बेहतर है: 'install.packages()' पहले से मौजूद है, जैसे अद्यतन संस्करण आदि। एक नई तंत्र को पुन: पेश करके आप बस नई और अवांछित त्रुटियों की एक फिसलन ढलान नीचे जायेंगे। आप अनिवार्य रूप से पुन: पेश करने की कोशिश कर रहे हैं कि एक विचलन या सिंक जैसे सिस्टम क्या करता है। बहुत जटिलता। –

+0

आपके comemnt @Dirk के लिए धन्यवाद। बाहरी पुस्तकालय आकार में 10 एमबी हैं और जब मैं सीआरएएन दस्तावेज पढ़ता हूं, तो उसने 5 एमबी से कम चीजों को रखने के प्रभाव के बारे में कुछ कहा। मैं आपका मुद्दा देखता हूं कि सीआरएएन एक सरल तंत्र प्रदान करता है और जहां भी संभव हो इसका उपयोग करना समझ में आता है। – Ramnath

+0

क्या यह जावा xlxs और weka के लिए है? फिर एक जार पैकेज समझ में आता है। अन्यथा आपको बाइनरी संगतता का मुद्दा है और उपयोगकर्ता पर भरोसा करना पड़ सकता है। –

उत्तर

3

के रूप में बड़ी की संख्या के साथ slidify की तरह टिप्पणी धागा में चर्चा की, एक पैकेज के लिए, (अधिकतर) तय, और पोर्टेबल फ़ाइलें, एक "संसाधन" पैकेज अधिक समझ में आता है:

  • आपको पता चलेगा पथ जहाँ इसे स्थापित (पैकेज के रूप में आपको बता देंगे)
  • उपयोगकर्ताओं गलती से इसे नहीं डाल सकते हैं कहीं और
  • क्या आप क्रैन वितरण, दर्पण, मिल क्रैन परीक्षण
  • मिलता है ...
  • उपयोगकर्ताओं ALR eady पता install.packages() आदि
  • अपने पैकेज इन तय भागों का उपयोग करने का अधिक चतुर विकास बड़े समर्थन फ़ाइलों
+0

एक व्यापक उत्तर @Dirk पोस्ट करने के लिए धन्यवाद। विस्तार से बताए गए फायदे सीआरएएन के माध्यम से गैर-आर संसाधनों को वितरित करने के लिए एक मजबूत मामला बनाते हैं। – Ramnath

+1

आपको सीआरएएन रवैया भी मिलता है ... – hadley

+0

शायद मैं जीथूब स्मगनेस पर सीआरएएन रवैया ले सकता हूं? ;-) –

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