Per ordinare un vettore 1D o una singola colonna di dati, basta chiamare la funzione di ordinamento e passare la sequenza.
D'altra parte, l' ordine funzione è necessaria per ordinare i dati due dati -dimensionale - cioè più colonne di dati raccolti in una matrice o dataframe.
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
Ecco un estratto dei dati per i tentativi di field goal nella stagione NFL 2008, un dataframe che ho chiamato "fg". supponiamo che questi 10 punti dati rappresentino tutti gli obiettivi sul campo tentati nel 2008; supponi inoltre di voler conoscere la distanza del canestro più lungo tentato quell'anno, chi lo ha calciato e se era buono o meno; vuoi anche conoscere il secondo più lungo, così come il terzo più lungo, ecc .; e infine vuoi il tentativo più breve di field goal.
Bene, potresti semplicemente fare questo:
sort(fg$Dist, decreasing=T)
che restituisce: 50 48 43 37 34 32 26 25 25 20
È corretto, ma non molto utile: ci dice la distanza del tentativo di canestro più lungo, il secondo più lungo, ... così come il più breve; tuttavia, ma questo è tutto ciò che sappiamo - ad esempio, non sappiamo chi fosse il kicker, se il tentativo ha avuto successo, ecc. Ovviamente, abbiamo bisogno dell'intero dataframe ordinato nella colonna "Dist" (in altre parole, noi desidera ordinare tutte le righe di dati sul singolo attributo Dist . che sarebbe simile a questo:
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
Questo è ciò che fa l' ordine . È "ordina" per dati bidimensionali; in altre parole, restituisce un indice intero 1D composto dai numeri di riga in modo tale che l'ordinamento delle righe in base a quel vettore, ti darebbe un ordinamento corretto per riga sulla colonna, Dist
Ecco come funziona. Sopra, sort è stato utilizzato per ordinare la colonna Dist; per ordinare l'intero dataframe sulla colonna Dist, usiamo 'order' esattamente nello stesso modo in cui 'sort' è usato sopra :
ndx = order(fg$Dist, decreasing=T)
(Di solito associo l'array restituito da 'order' alla variabile 'ndx', che sta per 'index', perché lo userò come array di indice per ordinare.)
quello era il passaggio 1, ecco il passaggio 2:
'ndx', ciò che viene restituito da 'sort' viene quindi utilizzato come array di indice per riordinare il dataframe, 'fg':
fg_sorted = fg[ndx,]
fg_sorted è il dataframe riordinato immediatamente sopra.
In sintesi, "sort" viene utilizzato per creare un array di indice (che specifica l'ordinamento della colonna che si desidera ordinare), che viene quindi utilizzato come array di indice per riordinare il dataframe (o matrice).