Tam kılavuz: r'de sort(), order() ve rank() nasıl kullanılır


R’nin insanların sıklıkla karıştırdığı üç işlevi sıralama , sıralama ve sıralamadır .

İşte bu işlevler arasındaki fark:

  • sort() bir vektörü artan düzende sıralar
  • order() bir vektörün her öğesinin indeksini sıralı düzende döndürür
  • Rank() bir vektörün her elemanına bir derece atayacaktır (en küçük = 1)

Aşağıdaki örnekte bu işlevlerin her birinin pratikte nasıl kullanılacağı gösterilmektedir.

Örnek: Vektörlerle sort(), order() ve Rank()’ı kullanın

Aşağıdaki kod, dört değerli bir vektörle sort() , order() ve Rank() işlevlerinin nasıl kullanılacağını gösterir:

 #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

İşte her fonksiyonun yaptığı şey:

1. sort() işlevi, vektör değerlerini artan düzende sıraladı.

2. order() işlevi, her öğenin dizinini sıralı düzende döndürdü.

  • Orijinal vektör değerlerini bu indeks değerlerine göre sıralarsanız sıralanmış bir vektör elde edersiniz.
  • Örneğin, order() bize değeri ilk önce indeks konumu 1’e koymamızı söyler; orijinal vektörde bu 0’dır.
  • Daha sonra order() bize değeri indeks pozisyonu 3’e koymamızı söyler; bu, orijinal vektörde 10’dur.
  • Daha sonra order() bize değeri indeks pozisyonu 4’e koymamızı söyler; bu, orijinal vektörde 15’tir.
  • Daha sonra order() bize değeri indeks konumu 2’ye koymamızı söyler; bu, orijinal vektörde 20’dir.
  • Nihai sonuç, sıralanmış bir vektördür – 0, 10, 15, 20.

3. Rank() işlevi, en küçük değer için 1’i kullanarak vektörün her öğesine bir sıra atadı.

  • Örneğin, Rank() bize orijinal vektörün ilk değerinin en küçük (rank = 1) olduğunu ve orijinal vektörün ikinci değerinin en büyük (rank = 4) olduğunu söyler.

sort() , order() ve rütbe()’yi ters sırada kullanmak için aşağıdaki sözdizimini kullanabileceğimizi unutmayın:

 #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

Bu sonuçların önceki örneklerde elde edilen sonuçların tam tersi olduğunu unutmayın.

Not: Rank() işleviyle bağların nasıl ele alınacağı

Rank() işlevini kullanırken bağları nasıl ele almamız gerektiğini belirtmek için Tie.method argümanını kullanabiliriz:

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

Bağlantıların nasıl işleneceğini belirtmek için aşağıdaki seçeneklerden birini kullanabilirsiniz:

  • ortalama : (Varsayılan) Bağlantılı her öğeye ortalama sıralamayı atar (3. ve 4. sıradaki öğelerin her ikisi de 3,5 puan alır)
  • birinci : İlk bağlantılı öğeyi en düşük sıraya atar (3. ve 4. konumlarda yer alan öğeler sırasıyla 3. ve 4. sıraları alır)
  • min : Bağlantılı her öğeyi en düşük sıraya atar (3. ve 4. sıradaki öğelerin her ikisi de 3 sırasını alır)
  • max : Bağlantılı her öğeye en yüksek sıralamayı atar (3. ve 4. sıradaki öğelerin her ikisi de 4 puan alacaktır)
  • rastgele : eşit olan her öğeye rastgele bir sıralama atar (3. ve 4. konum için eşit olan öğelerden herhangi biri her iki sıralamayı da alabilir)

Senaryonuza bağlı olarak bu yöntemlerden birinin kullanılması diğerlerinden daha anlamlı olabilir.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de birden çok sütuna göre sıralama nasıl yapılır
R’de bir veri çerçevesi tarihe göre nasıl sıralanır
R’de yüzdelik sıralama nasıl hesaplanır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir