Panduan lengkap: cara menggunakan sort(), order(), dan rank() di r


Tiga fungsi R yang sering membingungkan orang adalah pengurutan , pengurutan , dan pemeringkatan .

Berikut perbedaan fungsi-fungsi tersebut:

  • sort() akan mengurutkan vektor dalam urutan menaik
  • order() akan mengembalikan indeks setiap elemen vektor dalam urutan yang diurutkan
  • Rank() akan memberikan peringkat pada setiap elemen vektor (terkecil = 1)

Contoh berikut menunjukkan cara menggunakan masing-masing fungsi ini dalam praktiknya.

Contoh: Gunakan sort(), order() dan Rank() dengan vektor

Kode berikut menunjukkan cara menggunakan fungsi sort() , order(), dan Rank() dengan vektor bernilai empat:

 #createvector
x <- c(0, 20, 10, 15)

#sort vector
sort(s)

[1] 0 10 15 20

#order vector
order(s)

[1] 1 3 4 2

#rank vector
rank(x)

[1] 1 4 2 3

Inilah yang dilakukan setiap fungsi:

1. Fungsi sort() hanya mengurutkan nilai vektor dalam urutan menaik.

2. Fungsi order() mengembalikan indeks setiap elemen dalam urutan yang diurutkan.

  • Jika Anda mengurutkan nilai vektor asli berdasarkan nilai indeks tersebut, Anda akan mendapatkan vektor yang diurutkan.
  • Misalnya, order() memberitahu kita untuk terlebih dahulu meletakkan nilai pada posisi indeks 1 – yaitu 0 pada vektor aslinya.
  • Kemudian order() memberitahu kita untuk kemudian meletakkan nilai pada posisi indeks 3 – yaitu 10 pada vektor aslinya.
  • Kemudian order() memberitahu kita untuk kemudian meletakkan nilai pada posisi indeks 4 – yaitu 15 pada vektor aslinya.
  • Kemudian order() memberitahu kita untuk kemudian meletakkan nilai pada posisi indeks 2 – yaitu 20 pada vektor aslinya.
  • Hasil akhirnya adalah vektor yang diurutkan – 0, 10, 15, 20.

3. Fungsi Rank() memberikan peringkat pada setiap elemen vektor, menggunakan 1 untuk nilai terkecil.

  • Misalnya, Rank() memberi tahu kita bahwa nilai pertama dari vektor asli adalah yang terkecil (peringkat = 1) dan nilai kedua dari vektor asli adalah yang terbesar (peringkat = 4).

Perhatikan bahwa kita dapat menggunakan sintaks berikut untuk menggunakan sort() , order() dan rank() dalam urutan terbalik:

 #createvector
x <- c(0, 20, 10, 15)

#sort vector in decreasing order
sort(x, decreasing= TRUE )

[1] 20 15 10 0

#order vector in decreasing order
order(x, decreasing= TRUE )

[1] 2 4 3 1

#rank vector in reverse order (largest value = 1)
rank(-x)

[1] 4 1 3 2

Perhatikan bahwa hasil ini merupakan kebalikan dari hasil yang dihasilkan pada contoh sebelumnya.

Catatan: Cara menangani ikatan dengan fungsi Rank()

Kita bisa menggunakan argumen tie.method untuk menentukan bagaimana kita harus menangani ikatan saat menggunakan fungsi Rank() :

 rank(x, ties. method = ' average ')

Anda dapat menggunakan salah satu opsi berikut untuk menentukan cara menangani tautan:

  • rata-rata : (Default) Memberikan peringkat rata-rata pada setiap item yang ditautkan (item dengan peringkat ke-3 dan ke-4 akan menerima peringkat 3,5)
  • first : Menetapkan elemen tertaut pertama ke peringkat terendah (elemen yang berada di peringkat ke-3 dan ke-4 masing-masing akan menerima peringkat 3 dan 4)
  • min : Menetapkan setiap item yang ditautkan ke peringkat terendah (item peringkat 3 dan 4 keduanya akan menerima peringkat 3)
  • max : Menetapkan setiap item yang ditautkan dengan peringkat tertinggi (item dengan peringkat ke-3 dan ke-4 akan menerima peringkat 4)
  • random : menetapkan setiap elemen terikat peringkat acak (salah satu elemen terikat untuk posisi ke-3 dan ke-4 dapat menerima peringkat mana pun)

Tergantung pada skenario Anda, salah satu metode berikut mungkin lebih masuk akal untuk digunakan dibandingkan metode lainnya.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di R:

Cara mengurutkan berdasarkan beberapa kolom di R
Cara mengurutkan bingkai data berdasarkan tanggal di R
Cara menghitung peringkat persentil di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *