Um einen 1D-Vektor oder eine einzelne Datenspalte zu sortieren, rufen Sie einfach die Sortierfunktion auf und übergeben Sie Ihre Sequenz.
Auf der anderen Seite die Reihenfolge ist Funktion notwendige Daten zu sortieren zwei - dimensionale Daten -heißt, mehr Spalten von Datenin einer Matrix oderDatenrahmen gesammelt.
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
Hier ist ein Auszug von Daten für Feldtorversuche in der NFL-Saison 2008, ein Datenrahmen, den ich 'fg' genannt habe. Angenommen, diese 10 Datenpunkte repräsentieren alle im Jahr 2008 versuchten Feldziele. Angenommen, Sie möchten wissen, wie weit das längste in diesem Jahr versuchte Feldtor entfernt ist, wer es getreten hat und ob es gut war oder nicht. Sie möchten auch die zweitlängste sowie die drittlängste usw.; und schließlich möchten Sie den kürzesten Feldtorversuch.
Nun, Sie könnten einfach Folgendes tun:
sort(fg$Dist, decreasing=T)
was zurückgibt: 50 48 43 37 34 32 26 25 25 20
Das ist richtig, aber nicht sehr nützlich - es gibt Auskunft über die Entfernung des längsten Feldtorversuchs, des zweitlängsten, ... sowie des kürzesten; Aber das ist alles, was wir wissen - z. B. wissen wir nicht, wer der Kicker war, ob der Versuch erfolgreich war usw. Natürlich müssen wir den gesamten Datenrahmen in der Spalte "Dist" sortieren (anders ausgedrückt, wir Sie möchten alle Datenzeilen nach dem einzelnen Attribut Dist . sortieren , das folgendermaßen aussehen würde:
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
Das macht die Bestellung . Es ist 'sort' für zweidimensionale Daten; Anders ausgedrückt, es wird ein 1D-Ganzzahlindex zurückgegeben, der aus den Zeilennummern besteht, sodass Sie durch Sortieren der Zeilen nach diesem Vektor eine korrekte zeilenorientierte Sortierung in der Spalte Dist erhalten
So funktioniert das. Oben wurde sort verwendet, um die Dist-Spalte zu sortieren. Um den gesamten Datenrahmen in der Dist-Spalte zu sortieren, verwenden wir 'order' genauso wie oben 'sort' :
ndx = order(fg$Dist, decreasing=T)
(Normalerweise binde ich das von 'order' zurückgegebene Array an die Variable 'ndx', die für 'index' steht, weil ich es als Indexarray zum Sortieren verwenden werde.)
Das war Schritt 1, hier ist Schritt 2:
'ndx', was von 'sort' zurückgegeben wird, wird dann als Indexarray verwendet, um den Datenrahmen 'fg' neu zu ordnen:
fg_sorted = fg[ndx,]
fg_sorted ist der neu geordnete Datenrahmen unmittelbar darüber.
In der Summe wird 'sort' verwendet, um ein Indexarray zu erstellen (das die Sortierreihenfolge der zu sortierenden Spalte angibt), das dann als Indexarray verwendet wird, um den Datenrahmen (oder die Matrix) neu zu ordnen.