आर के डिफ़ॉल्ट व्यवहार के लिए डिज़ाइन निर्णय इंटरैक्टिव उपयोग के लिए ठीक-ठीक हैं, लेकिन परिणामस्वरूप अधिक उपयोगकर्ता निरीक्षण के बिना बड़े कोडबेस में अवांछित व्यवहार हो सकता है। मुझे भाषा को और अधिक सख्त बनाने के तरीकों को खोजने में दिलचस्पी होगी। मेरे पास दो बुनियादी उदाहरण हैं।बदलते ऑपरेटर डिफ़ॉल्ट व्यवहार
(रीसाइक्लिंग) गैर अनुकूल वैक्टर arythmetic आपरेशनों में पुनर्नवीनीकरण:
> x=1:10
> y=1:20
> y=rep(1,20)
> x+y
[1] 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9 10 11
उसमें कोई त्रुटि में इस आपरेशन परिणाम बनाने के लिए एक तरीका है?
(रूपांतरण) रूपांतरण होते हैं, जब वैक्टर को अद्यतन करने के लिए, कभी कभी, कभी कभी वेक्टर के प्रकार अपडेट किया जा रहा तत्व के प्रकार को बदलने:
> x[1] <- 'a'
> x
[1] "a" "2" "3" "4" "5" "6" "7" "8" "9" "10"
> x[1] <- 1
> x
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
वहाँ एक में इस आपरेशन परिणाम बनाने के लिए एक रास्ता है त्रुटि?
मुझे विश्वास है कि नए और मध्यवर्ती उपयोगकर्ताओं की निराशा की वजह से इस तरह के व्यवहार से उत्पन्न होता है (जिसके परिणामस्वरूप भाषा पर सारांश निर्णय होता है!)। रीसाइक्लिंग और रूपांतरण को संबोधित करने के लिए सामान्य दृष्टिकोण के लिए कोई सूचक बहुत स्वागत है।
रीसाइक्लिंग और रूपांतरण भाषा के मूल गुण हैं। दोनों सी स्तर पर लागू किए गए हैं। इमो इसे सामान्य रूप से बदलने के लिए बेस सोर्स कोड को बदलने और आर पुनर्निर्माण की आवश्यकता होगी। यह एक गैर-मामूली कार्य होगा और कई अन्य कार्यों को तोड़ने की उम्मीद की जा सकती है। उदाहरण के लिए, आप कुछ वर्ग के लिए '+' विधियां लिख सकते हैं जो परीक्षण करते हैं कि इनपुट बराबर लंबाई है, लेकिन महत्वपूर्ण प्रदर्शन लागत होगी और आपको लगता है कि आपके मन में कुछ और सामान्य है। – Roland
क्या रोलैंड ने कहा सही है और आपको मूल कार्यों के साथ गड़बड़ नहीं करनी चाहिए, लेकिन आप प्रदर्शन में बड़े नुकसान के बिना अपना खुद का समान कार्य बना सकते हैं, उदाहरण के लिए '' '' "% +%" <- function (x, वाई) {stopifnot (लंबाई (एक्स) == लंबाई (वाई)); '+' (x, y)} '' '' 'फिर आप इसे 'x% +% y' –
के साथ परीक्षण कर सकते हैं रीसाइक्लिंग के लिए आप [इस प्रश्न और इसकी टिप्पणियां] देख सकते हैं (http://stackoverflow.com/questions/9424976/बिना शर्त-चेतावनी-जब-रीसाइक्लिंग)। ऐसा लगता है कि इस मूल आर फीचर को बदलना असंभव है। – agstudy