संपूर्ण गाइड: आर में सॉर्ट(), ऑर्डर() और रैंक() का उपयोग कैसे करें
आर के तीन कार्य जिन्हें लोग अक्सर भ्रमित करते हैं वे हैं सॉर्टिंग , ऑर्डरिंग और रैंकिंग ।
यहाँ इन कार्यों के बीच अंतर है:
- सॉर्ट() एक वेक्टर को आरोही क्रम में सॉर्ट करेगा
- order() क्रमबद्ध क्रम में वेक्टर के प्रत्येक तत्व का सूचकांक लौटाएगा
- रैंक() वेक्टर के प्रत्येक तत्व को एक रैंक प्रदान करेगा (सबसे छोटा = 1)
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इनमें से प्रत्येक फ़ंक्शन का उपयोग कैसे करें।
उदाहरण: वैक्टर के साथ सॉर्ट(), ऑर्डर() और रैंक() का उपयोग करें
निम्नलिखित कोड दिखाता है कि चार-मूल्य वाले वेक्टर के साथ सॉर्ट() , ऑर्डर(), और रैंक() फ़ंक्शन का उपयोग कैसे करें:
#createvector
x <- c(0, 20, 10, 15)
#sort vector
sort(s)
[1] 0 10 15 20
#order vector
order(s)
[1] 1 3 4 2
#rank vector
rank(x)
[1] 1 4 2 3
यहां बताया गया है कि प्रत्येक फ़ंक्शन ने क्या किया:
1. सॉर्ट() फ़ंक्शन केवल वेक्टर मानों को आरोही क्रम में क्रमबद्ध करता है।
2. ऑर्डर() फ़ंक्शन ने क्रमबद्ध क्रम में प्रत्येक तत्व का सूचकांक लौटाया।
- यदि आप इन सूचकांक मूल्यों के आधार पर मूल वेक्टर मानों को क्रम में रखते हैं, तो आपको एक क्रमबद्ध वेक्टर मिलेगा।
- उदाहरण के लिए, order() हमें पहले मान को सूचकांक स्थिति 1 पर रखने के लिए कहता है – मूल वेक्टर में यह 0 है।
- फिर order() हमें बताता है कि मान को सूचकांक स्थिति 3 पर रखें – जो कि मूल वेक्टर में 10 है।
- फिर order() हमें बताता है कि मान को सूचकांक स्थिति 4 पर रखें – जो कि मूल वेक्टर में 15 है।
- फिर order() हमें बताता है कि मान को सूचकांक स्थिति 2 पर रखें – जो कि मूल वेक्टर में 20 है।
- अंतिम परिणाम एक क्रमबद्ध वेक्टर है – 0, 10, 15, 20।
3. रैंक() फ़ंक्शन ने सबसे छोटे मान के लिए 1 का उपयोग करते हुए, वेक्टर के प्रत्येक तत्व को एक रैंक सौंपी।
- उदाहरण के लिए, रैंक() हमें बताता है कि मूल वेक्टर का पहला मान सबसे छोटा है (रैंक = 1) और मूल वेक्टर का दूसरा मान सबसे बड़ा है (रैंक = 4)।
ध्यान दें कि हम सॉर्ट() , ऑर्डर() और रैंक() को उल्टे क्रम में उपयोग करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
#createvector
x <- c(0, 20, 10, 15)
#sort vector in decreasing order
sort(x, decreasing= TRUE )
[1] 20 15 10 0
#order vector in decreasing order
order(x, decreasing= TRUE )
[1] 2 4 3 1
#rank vector in reverse order (largest value = 1)
rank(-x)
[1] 4 1 3 2
ध्यान दें कि ये परिणाम पिछले उदाहरणों में उत्पन्न परिणामों के बिल्कुल विपरीत हैं।
नोट: रैंक() फ़ंक्शन के साथ संबंधों को कैसे संभालें
हम यह निर्दिष्ट करने के लिए टाई.मेथड तर्क का उपयोग कर सकते हैं कि रैंक() फ़ंक्शन का उपयोग करते समय हमें संबंधों को कैसे संभालना चाहिए:
rank(x, ties. method = ' average ')
लिंक को संभालने का तरीका निर्दिष्ट करने के लिए आप निम्न विकल्पों में से किसी एक का उपयोग कर सकते हैं:
- औसत : (डिफ़ॉल्ट) प्रत्येक लिंक किए गए आइटम को औसत रैंक निर्दिष्ट करता है (तीसरे और चौथे स्थान पर मौजूद आइटम दोनों को 3.5 की रैंक प्राप्त होगी)
- प्रथम : पहले लिंक किए गए तत्व को निम्नतम रैंक पर निर्दिष्ट करता है (तीसरे और चौथे स्थान पर मौजूद तत्वों को क्रमशः रैंक 3 और 4 प्राप्त होगा)
- न्यूनतम : प्रत्येक लिंक किए गए आइटम को निम्नतम रैंक पर असाइन करता है (तीसरे और चौथे स्थान पर मौजूद आइटम दोनों को 3 की रैंक प्राप्त होगी)
- अधिकतम : प्रत्येक लिंक किए गए आइटम को उच्चतम रैंक प्रदान करता है (तीसरे और चौथे स्थान वाले आइटम दोनों को 4 की रैंक प्राप्त होगी)
- यादृच्छिक : प्रत्येक बंधे हुए तत्व को एक यादृच्छिक रैंक प्रदान करता है (तीसरे और चौथे स्थान के लिए बंधे हुए तत्व को कोई भी रैंक प्राप्त हो सकता है)
आपके परिदृश्य के आधार पर, इनमें से एक विधि का उपयोग अन्य की तुलना में अधिक सार्थक हो सकता है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य ऑपरेशन कैसे करें:
आर में एकाधिक कॉलम के आधार पर कैसे क्रमबद्ध करें
आर में दिनांक के अनुसार डेटा फ़्रेम को कैसे क्रमबद्ध करें
आर में प्रतिशतक रैंक की गणना कैसे करें