2010-02-13 16 views
34

R में प्रोग्रामिंग के लिए कुछ अच्छे अभ्यास क्या हैं?आर में प्रोग्रामिंग के लिए आप किस सर्वोत्तम प्रथाओं का उपयोग करते हैं?

R एक विशेष उद्देश्य वाली भाषा है जो मैं हर समय उपयोग नहीं करता हूं, मैं आमतौर पर कुछ त्वरित स्क्रिप्ट्स को एक साथ जोड़ता हूं जो मुझे चाहिए।

लेकिन स्वच्छ और कुशल R कोड लिखने के लिए कुछ सुझाव क्या हैं?

+0

ब्याज का एक संबंधित प्रश्न: http://stackoverflow.com/questions/1295955/what-is-the-most-useful-r-trick (इसलिए वास्तव में उनको ढूंढने का बेहतर काम करना चाहिए, यह jQuery दिखाता है और विंडोज 7 प्रश्न "संबंधित" के रूप में)। – Frank

उत्तर

14

मैं जोश रीच के लोड, क्लीन, फनक, this previous question से वर्कफ़्लो की सलाह देता हूं।

इसके अतिरिक्त मैं Google's R Style Guide जैसे कोडिंग दिशानिर्देशों की अनुशंसा करता हूं। एक कोडिंग शैली गाइड का उपयोग कोड को बाद में इतना आसान बनाता है।

+3

मैं चाहता हूं कि 'डॉट' नामकरण सम्मेलन उस स्टाइल गाइड (उदाहरण के लिए, some.variable.name) में अनुमोदित नहीं था। इसका इतिहास है और अधिकांश आर कोड इस तरह लिखा गया है, फिर भी, प्रशंसक नहीं। – doug

+1

मैं डौग से सहमत हूं। मैं खुद camelCase का उपयोग करें। स्टाइल गाइड, जैसे कि वर्जन कंट्रोल, आप जो चुनते हैं उसके बारे में कम हैं और एक चुनने और इसका उपयोग करने के बारे में अधिक हैं। –

19

आप पहले से ही अपने दृष्टिकोण बताकर कुछ संकेत प्रदान करते हैं 'त्वरित स्क्रिप्ट हैक' है। आप सर्वोत्तम प्रथाओं और संरचना चाहते हैं, सरल स्थापित सर्वोत्तम प्रथाओं क्रैन से पालन करें:

  • एक पैकेज बनाने के लिए, इस R CMD check चल रहा है जो बहुत उपयोगी
  • के रूप में कई लोगों ने कहा है के लिए दरवाजा खुल जाता है , एक पैकेज होने से आपको कोड चरण लिखने में मदद मिलती है क्योंकि आप को कोड को दस्तावेज़ करने के लिए कुछ हद तक मजबूर होना पड़ता है; कि एक अच्छी बात (टीएम)
  • एक बार आप एक पैकेज है, R CMD check दौरान दस्तावेज की \examples{} अनुभाग में कोड जोड़ने के रूप में इस चल रहा हो जाएगा और एक बार आप प्रतिगमन आदत हो प्रतिगमन परीक्षण
  • के लिए एक आसान प्रविष्टि प्रदान करता है परीक्षण, RUnit जैसे पैकेज का उपयोग करना शुरू करें; वास्तव में सर्वोत्तम प्रथाओं
  • Google Style Guide पर जेडी का सूचक भी एक अच्छा है। यह एकमात्र स्टाइल गाइड नहीं है जैसे कि उदा। Henrik's R Coding Convention इसे कुछ सालों से पहले करता है; oldie बल्कि गोल्डी भी विशेष रूप से संकुल के उपयोग के बारे
6

मैं पूरी तरह से मौजूदा जवाब के साथ सहमत लागू होता है, 'क्या अपने सहयोगियों और coauthors करते हैं' और वहाँ भी है Hadley's riff on Google's style guide

  • अन्यथा,। पैकेजों के लिए बहुत सारे अनुशासन, दस्तावेज़ीकरण और संरचना की आवश्यकता होती है, जो वास्तव में सर्वोत्तम प्रथाओं (आर सीएमडी चेक के साथ) को लागू करने में मदद करता है। आप इसके साथ मदद करने के लिए the codetools package का भी उपयोग कर सकते हैं। दस्तावेज़ीकरण के लिए roxygen पैकेज का प्रयोग करें।

    इसके अलावा, मेरा सुझाव है कि आप न केवल अपने कोड vectorize, लेकिन अधिक विशेष रूप से, अपने कार्यों vectorize करने के लिए हर संभव प्रयास करते हैं, जिसका अर्थ है कि आप वेक्टर तर्क प्रदान करते हैं और वैक्टर प्राप्त करने में सक्षम होना चाहिए (वापस लौटे जैसी चीजों से भी डेटाबेस कॉल)। इससे लंबे समय तक आपकी कोड दक्षता और स्पष्टता में सुधार होगा।

    आखिरकार, मैं वास्तव में एक रिपोर्ट लिखते समय स्पष्ट कोडेट पुनरुत्पादित शोध में अपना कोड व्यवस्थित करने के लिए स्वीवे की तरह कुछ उपयोग करना पसंद करता हूं। इसके साथ में मैं कैश पैकेज का उपयोग करने की सलाह देता हूं।

  • +0

    उत्तर शेन के लिए धन्यवाद। क्या आपके पास "कोडेटूल" पैकेज के उपयोग के लिए कोई उदाहरण है? –

    2

    दक्षता के लिए, for लूप पर वेक्टर ऑपरेशंस पसंद करते हैं।

    1

    यह सामान्य रूप से अच्छा प्रोग्रामिंग अभ्यास है, लेकिन एक संस्करण नियंत्रण प्रणाली का उपयोग करें जैसे कि एसवीएन आपके कोड को प्रबंधित करें।

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

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