हैडली विकम के " एडवांस्ड आर " में कुछ बहुत अच्छे परिचय और संदर्भ हैं। मैं बेहतर अनुक्रमण के लिए इस खंड की नकल कर रहा हूं।
एक प्रणाली चुन रहा है
थ्री OO सिस्टम एक भाषा के लिए बहुत है, लेकिन अधिकांश R प्रोग्रामिंग के लिए, S3 पर्याप्त है। आर में आप आमतौर पर प्रिंट और (), सारांश (), और प्लॉट () जैसे पहले से मौजूद सामान्य कार्यों के लिए काफी सरल वस्तुओं और तरीकों का निर्माण करते हैं। S3 इस कार्य के लिए अच्छी तरह से अनुकूल है, और अधिकांश OO कोड जो मैंने R में लिखे हैं, S3 है। S3 थोड़ा विचित्र है, लेकिन यह न्यूनतम कोड के साथ काम करता है।
यदि आप परस्पर संबंधित वस्तुओं के अधिक जटिल सिस्टम बना रहे हैं, तो S4 अधिक उपयुक्त हो सकता है। एक अच्छा उदाहरण डगलस बेट्स और मार्टिन Maechler द्वारा मैट्रिक्स पैकेज है। इसे कई अलग-अलग प्रकार के विरल मैट्रिसेस के साथ कुशलता से संग्रहित और गणना करने के लिए डिज़ाइन किया गया है। संस्करण 1.1.3 के रूप में, यह 102 वर्गों और 20 सामान्य कार्यों को परिभाषित करता है। पैकेज को अच्छी तरह से लिखा गया है और अच्छी तरह से टिप्पणी की गई है, और साथ वाले विगनेट (विगनेट ("इंट्रो 2मेट्रिक्स", पैकेज = "मैट्रिक्स")) पैकेज की संरचना का एक अच्छा अवलोकन देता है। S4 का उपयोग बायोकॉन्टर पैकेजों द्वारा बड़े पैमाने पर किया जाता है, जिन्हें जैविक वस्तुओं के बीच जटिल अंतर्संबंधों को मॉडल करने की आवश्यकता होती है। बायोकॉन्टर एस 4 सीखने के लिए कई अच्छे संसाधन प्रदान करता है। यदि आपने S3 में महारत हासिल की है, तो S4 को चुनना आसान है; सभी विचार समान हैं,
यदि आपने मुख्यधारा की ओओ भाषा में प्रोग्राम किया है, तो आरसी बहुत स्वाभाविक लगेगा। लेकिन क्योंकि वे परस्पर प्रभाव के माध्यम से दुष्प्रभाव का परिचय दे सकते हैं, उन्हें समझना कठिन है। उदाहरण के लिए, जब आप आमतौर पर आर में एफ (ए, बी) कहते हैं, तो आप मान सकते हैं कि ए और बी को संशोधित नहीं किया जाएगा। लेकिन अगर a और b RC ऑब्जेक्ट हैं, तो उन्हें जगह में संशोधित किया जा सकता है। आम तौर पर, आरसी ऑब्जेक्ट्स का उपयोग करते समय आप साइड इफेक्ट्स को जितना संभव हो कम से कम करना चाहते हैं, और उनका उपयोग केवल उन्हीं स्थानों पर करें जहां उत्परिवर्ती राज्यों की आवश्यकता होती है। कार्यों के बहुमत अभी भी "कार्यात्मक" होना चाहिए, और दुष्प्रभावों से मुक्त होना चाहिए। यह कोड को अन्य आर प्रोग्रामर के लिए समझने में आसान और आसान बनाता है।
वह " एस 4 प्रोग्रामिंग पर एक व्यावहारिक ट्यूटोरियल " का संदर्भ देता है ।
यदि आप उसके संकेत का अनुसरण करते हैं तो कई अन्य दिलचस्प संसाधन हैं।
जॉन एम। चेम्बर्स कहते हैं, "ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग, फंक्शनल प्रोग्रामिंग और आर" :
आर भी कार्यात्मक प्रोग्रामिंग के विचारों से दृढ़ता से प्रभावित हुआ है और, विशेष रूप से, वस्तु उन्मुख प्रोग्रामिंग के साथ कार्यात्मक गठबंधन करने की इच्छा से
इस सवाल से सीधे तौर पर नहीं, बल्कि एक ही विचार के साथ कुछ जोड़ना होगा: "डेटा स्केल इन स्पार्क फॉर लार्ज स्केल डेटा साइंस" । चूंकि यह स्कैला और आर को करीब लाता है, इसलिए इससे एक महान ओओ / कार्यात्मक तालमेल हो सकता है।