Untuk mengurutkan vektor 1D atau satu kolom data, cukup panggil fungsi sortir dan teruskan dalam urutan Anda.
Di sisi lain, fungsi order diperlukan untuk mengurutkan data data dua dimensi - yaitu, beberapa kolom data yang dikumpulkan dalam matriks atau kerangka data.
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
Berikut adalah kutipan data untuk percobaan gol lapangan di musim NFL 2008, kerangka data yang saya sebut 'fg'. anggaplah 10 titik data ini mewakili semua tujuan lapangan yang dicoba pada tahun 2008; lebih lanjut anggaplah Anda ingin mengetahui jarak dari gol lapangan terpanjang yang dicoba tahun itu, siapa yang menendangnya, dan apakah itu bagus atau tidak; Anda juga ingin mengetahui yang terpanjang kedua, serta yang terpanjang ketiga, dll .; dan akhirnya Anda menginginkan percobaan gol lapangan terpendek.
Nah, Anda bisa melakukan ini:
sort(fg$Dist, decreasing=T)
yang mengembalikan: 50 48 43 37 34 32 26 25 25 20
Itu benar, tapi tidak terlalu berguna - ini memberi tahu kita jarak dari percobaan gol lapangan terpanjang, terpanjang kedua, ... serta terpendek; bagaimanapun, tapi hanya itu yang kami tahu - misalnya, kami tidak tahu siapa kickernya, apakah upaya itu berhasil, dll. Tentu saja, kami membutuhkan seluruh kerangka data yang diurutkan pada kolom "Dist" (dengan kata lain, kami ingin mengurutkan semua baris data pada atribut tunggal Dist . yang akan terlihat seperti ini:
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
Inilah yang dilakukan perintah . Ini adalah 'sort' untuk data dua dimensi; Dengan kata lain, ini mengembalikan indeks integer 1D yang terdiri dari nomor baris sehingga mengurutkan baris sesuai dengan vektor itu, akan memberi Anda pengurutan berorientasi baris yang benar pada kolom, Dist
Begini cara kerjanya. Di atas, sortir digunakan untuk mengurutkan kolom Dist; untuk mengurutkan seluruh kerangka data pada kolom Dist, kami menggunakan 'order' persis dengan cara yang sama seperti 'sort' digunakan di atas :
ndx = order(fg$Dist, decreasing=T)
(Saya biasanya mengikat array yang dikembalikan dari 'order' ke variabel 'ndx', yang merupakan singkatan dari 'index', karena saya akan menggunakannya sebagai array indeks untuk mengurutkan.)
itu adalah langkah 1, inilah langkah 2:
'NDX', apa yang dikembalikan oleh 'semacam' kemudian digunakan sebagai array indeks untuk kembali-order dataframe itu, 'fg':
fg_sorted = fg[ndx,]
fg_sorted adalah urutan ulang kerangka data tepat di atas.
Singkatnya, 'sort' digunakan untuk membuat array indeks (yang menentukan urutan kolom yang ingin Anda sortir), yang kemudian digunakan sebagai array indeks untuk menyusun ulang kerangka data (atau matriks).