1D वेक्टर या डेटा के एकल कॉलम को सॉर्ट करने के लिए, बस सॉर्ट फ़ंक्शन को कॉल करें और अपने अनुक्रम में पास करें।
दूसरी ओर, ऑर्डर फ़ंक्शन डेटा को दो -आयामी डेटा को सॉर्ट करने के लिए आवश्यक है - अर्थात, मैट्रिक्स या डेटाफ़्रेम में एकत्रित डेटा के कई कॉलम।
Stadium Home Week Qtr Away Off Def Result Kicker Dist
751 Out PHI 14 4 NYG PHI NYG Good D.Akers 50
491 Out KC 9 1 OAK OAK KC Good S.Janikowski 32
702 Out OAK 15 4 CLE CLE OAK Good P.Dawson 37
571 Out NE 1 2 OAK OAK NE Missed S.Janikowski 43
654 Out NYG 11 2 PHI NYG PHI Good J.Feely 26
307 Out DEN 14 2 BAL DEN BAL Good J.Elam 48
492 Out KC 13 3 DEN KC DEN Good L.Tynes 34
691 Out NYJ 17 3 BUF NYJ BUF Good M.Nugent 25
164 Out CHI 13 2 GB CHI GB Good R.Gould 25
80 Out BAL 1 2 IND IND BAL Good M.Vanderjagt 20
यहाँ 2008 एनएफएल सीज़न में फ़ील्ड लक्ष्य प्रयासों के लिए डेटा का एक अंश है, एक डेटाफ़्रेम जिसे मैंने 'fg' कहा है। मान लें कि ये 10 डेटा पॉइंट 2008 में किए गए सभी क्षेत्र लक्ष्यों का प्रतिनिधित्व करते हैं; आगे मान लें कि आप उस वर्ष के सबसे लंबे क्षेत्र के लक्ष्य की दूरी जानना चाहते हैं, जिसने इसे लात मारी, और यह अच्छा था या नहीं; आप दूसरे-सबसे लंबे, साथ ही तीसरे-सबसे लंबे, आदि को जानना चाहते हैं; और अंत में आप सबसे छोटा क्षेत्र लक्ष्य प्रयास करना चाहते हैं।
ठीक है, आप ऐसा कर सकते हैं:
sort(fg$Dist, decreasing=T)
जो रिटर्न: 50 48 43 37 34 32 26 25 25 20
यह सही है, लेकिन बहुत उपयोगी नहीं है - यह हमें सबसे लंबे क्षेत्र के लक्ष्य के प्रयास की दूरी बताता है, दूसरे-सबसे लंबे समय तक, ... साथ ही सबसे छोटा; हालाँकि, लेकिन हम सभी जानते हैं - उदाहरण के लिए, हम नहीं जानते कि किकर कौन था, क्या प्रयास सफल रहा था, आदि, बेशक, हमें "डिस्ट" कॉलम पर सॉर्ट किए गए संपूर्ण डेटाफ़्रेम की आवश्यकता है (एक और तरीका डालें, हम एकल विशेषता Dist पर सभी डेटा पंक्तियों को क्रमबद्ध करना चाहते हैं । यह इस तरह दिखेगा:
Stadium Home Week Qtr Away Off Def Result Kicker Dist
751 Out PHI 14 4 NYG PHI NYG Good D.Akers 50
307 Out DEN 14 2 BAL DEN BAL Good J.Elam 48
571 Out NE 1 2 OAK OAK NE Missed S.Janikowski 43
702 Out OAK 15 4 CLE CLE OAK Good P.Dawson 37
492 Out KC 13 3 DEN KC DEN Good L.Tynes 34
491 Out KC 9 1 OAK OAK KC Good S.Janikowski 32
654 Out NYG 11 2 PHI NYG PHI Good J.Feely 26
691 Out NYJ 17 3 BUF NYJ BUF Good M.Nugent 25
164 Out CHI 13 2 GB CHI GB Good R.Gould 25
80 Out BAL 1 2 IND IND BAL Good M.Vanderjagt 20
यही क्रम चलता है। यह दो-आयामी डेटा के लिए 'सॉर्ट' है; दूसरा तरीका रखो, यह 1D पूर्णांक इंडेक्स देता है जिसमें पंक्ति संख्याएं शामिल होती हैं जो कि उस वेक्टर के अनुसार पंक्तियों को छांटती हैं, आपको कॉलम पर एक सही पंक्ति-उन्मुख प्रकार देगा, Dist
यहां देखिए यह कैसे काम करता है। ऊपर, सॉर्ट का उपयोग डिस्ट कॉलम को सॉर्ट करने के लिए किया गया था; Dist कॉलम पर संपूर्ण डेटाफ़्रेम को सॉर्ट करने के लिए, हम 'ऑर्डर' का ठीक उसी तरह उपयोग करते हैं, जैसे 'सॉर्ट' ऊपर प्रयोग किया जाता है :
ndx = order(fg$Dist, decreasing=T)
(मैं आमतौर पर 'ऑर्डर' से लौटे हुए सरणी को वेरिएबल 'ndx' में बाँधता हूँ, जो 'इंडेक्स' के लिए है, क्योंकि मैं इसे सॉर्ट करने के लिए इंडेक्स एरे के रूप में उपयोग करने जा रहा हूँ।)
यह चरण 1 था, यहाँ चरण 2 है:
'ndx', जिसे 'सॉर्ट' द्वारा लौटाया जाता है, उसके बाद डेटाफ्रेम, 'जीजी' को पुनः क्रम देने के लिए एक इंडेक्स ऐरे के रूप में उपयोग किया जाता है :
fg_sorted = fg[ndx,]
fg_sorted पुन: आदेश दिया गया डेटाफ़ॉर्म तुरंत ऊपर है।
संक्षेप में, 'सॉर्ट' का उपयोग इंडेक्स सरणी बनाने के लिए किया जाता है (जो आपके द्वारा सॉर्ट किए जाने वाले कॉलम के सॉर्ट ऑर्डर को निर्दिष्ट करता है), जो तब डेटाफ्रेम (या मैट्रिक्स) को री-ऑर्डर करने के लिए इंडेक्स सरणी के रूप में उपयोग किया जाता है।