Pour trier un vecteur 1D ou une seule colonne de données, appelez simplement la fonction de tri et transmettez votre séquence.
D'autre part, la fonction de commande est nécessaire pour trier les données à deux dimensions, c'est-à-dire plusieurs colonnes de données collectées dans une matrice ou une trame de données.
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
Voici un extrait de données pour les tentatives de buts sur le terrain lors de la saison 2008 de la NFL, une base de données que j'ai appelée «fg». supposons que ces 10 points de données représentent tous les objectifs de terrain tentés en 2008; supposons en outre que vous vouliez connaître la distance du plus long panier tenté cette année-là, qui l'a botté et s'il était bon ou non; vous voulez également connaître le deuxième plus long, ainsi que le troisième plus long, etc. et enfin, vous voulez la tentative de but sur le terrain la plus courte.
Eh bien, vous pouvez simplement faire ceci:
sort(fg$Dist, decreasing=T)
qui renvoie: 50 48 43 37 34 32 26 25 25 20
C'est correct, mais pas très utile - cela nous indique la distance de la tentative de panier la plus longue, la deuxième plus longue, ... ainsi que la plus courte; cependant, mais c'est tout ce que nous savons - par exemple, nous ne savons pas qui était le kicker, si la tentative a réussi, etc. voulez trier toutes les lignes de données sur l'attribut unique Dist . qui ressemblerait à ceci:
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
C'est ce que fait l' ordre . C'est un «tri» pour les données bidimensionnelles; en d'autres termes, il renvoie un index entier 1D composé des numéros de ligne de sorte que le tri des lignes en fonction de ce vecteur vous donnerait un tri orienté ligne correct sur la colonne, Dist
Voilà comment cela fonctionne. Ci-dessus, le tri a été utilisé pour trier la colonne Dist; pour trier le dataframe entier sur la colonne Dist, nous utilisons 'order' exactement de la même manière que 'sort' est utilisé ci - dessus :
ndx = order(fg$Dist, decreasing=T)
(Je lie généralement le tableau retourné par 'order' à la variable 'ndx', qui signifie 'index', car je vais l'utiliser comme tableau d'index pour trier.)
c'était l'étape 1, voici l'étape 2:
'ndx', ce qui est retourné par 'sort' est ensuite utilisé comme tableau d'index pour réorganiser le dataframe, 'fg':
fg_sorted = fg[ndx,]
fg_sorted est le dataframe réordonné immédiatement au-dessus.
En somme, «sort» est utilisé pour créer un tableau d'index (qui spécifie l'ordre de tri de la colonne que vous souhaitez trier), qui est ensuite utilisé comme tableau d'index pour réorganiser la trame de données (ou la matrice).