Pour trier un vecteur 1D ou une seule colonne de données, il suffit d'appeler la fonction trier et passer dans votre séquence.
D'autre part, le commander La fonction est nécessaire pour trier les données deux -Les données multidimensionnelles, c'est-à-dire les colonnes multiples de données rassemblées dans une matrice ou un cadre 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
Supposons que ces 10 points de données représentent tous les field goals tentés en 2008. Supposons également que vous souhaitiez connaître la distance du plus long field goal tenté cette année-là, qui l'a botté et s'il a été bon ou mauvais.
Eh bien, tu pourrais juste faire ça :
sort(fg$Dist, decreasing=T)
qui donne : 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 plus longue tentative de field goal, la deuxième plus longue,... ainsi que la plus courte ; cependant, c'est tout ce que nous savons - par exemple, nous ne savons pas qui était le botteur, si la tentative a été réussie, etc. Bien sûr, nous avons besoin de l'ensemble du cadre de données trié sur la colonne "Dist" (en d'autres termes, nous voulons trier toutes les lignes de données sur l'unique attribut 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 commander fait. Il s'agit d'un "tri" pour les données bidimensionnelles ; en d'autres termes, il renvoie un indice entier 1D composé des numéros de rangée de telle sorte que le tri des rangées en fonction de ce vecteur vous donne un tri correct orienté rangée sur la colonne, Dist
Voici comment cela fonctionne. Ci-dessus, trier a été utilisé pour trier la colonne Dist ; pour trier l'ensemble du cadre de données 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 habituellement le tableau retourné par 'order' à la variable 'ndx', qui signifie 'index', parce que je vais l'utiliser comme tableau d'indexation pour s'assurer que le tableau n'est pas endommagé). pour 'index', parce que je vais l'utiliser comme un tableau d'index pour trier).
C'était l'étape 1, voici l'étape 2 :
ndx', ce qui est renvoyé par 'sort' est ensuite utilisé comme un tableau d'index pour réorganiser le cadre de données, 'fg' :
fg_sorted = fg[ndx,]
fg_sorted est le cadre de données réordonné immédiatement au-dessus.
En résumé, "sort" est utilisé pour créer un tableau d'index (qui spécifie l'ordre de tri de la colonne que vous voulez trier), qui est ensuite utilisé comme tableau d'index pour réorganiser le cadre de données (ou la matrice).