C: sıralama fonksiyonunda tie.method için eksiksiz bir rehber
Bir vektördeki değerlerin sırasını döndürmek için R tabanındaki Rank() işlevini kullanabilirsiniz.
Bu işlev aşağıdaki temel sözdizimini kullanır:
rütbe(x, na.last=TRUE,ties.method=”ortalama”)
Altın:
- x : Sınıflandırılacak değerleri içeren vektör
- na.last : TRUE ise eksik değerler en sona konur. FALSE ise, eksik değerler ilk sıraya konur.
- Tie.method : Bağlar nasıl ele alınır (varsayılan “ortalamadır”)
Rank() fonksiyonunun Ties.method argümanı, bağların nasıl ele alınması gerektiğini belirtir.
Bu argüman aşağıdaki seçenekleri kabul eder:
- 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)
- last : Son bağlantılı öğeyi en düşük sıraya atar (3. ve 4. konumlarda yer alan öğeler sırasıyla 4. ve 3. 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)
Aşağıdaki örnekler, R’deki aşağıdaki veri çerçevesiyle her seçeneğin pratikte nasıl kullanılacağını gösterir:
#create data frame df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'), dots=c(5, 8, 10, 10, 17)) #view data frame df player points 1 to 5 2 B 8 3 C 10 4 D 10 5 E 17
Örnek 1: Rank() işlevini Ties.method=”average” ile kullanın
Aşağıdaki kod, puan sütununun değerine göre her oyuncuya bir sıralama atamak için Ties.method=”average” ile Rank() kullanan yeni bir sütunun nasıl oluşturulacağını gösterir:
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = “ average ”) #view updated data frame df player points points_rank 1 to 5 1.0 2 B 8 2.0 3 C 10 3.5 4 D 10 3.5 5 E 17 5.0
C ve D oyuncuları aynı puana sahip oldukları ve 3. ve 4. sırada yer aldıkları için her ikisi de sıralama ortalamasını aldı: 3,5 .
Örnek 2: Rank() işlevini Ties.method=”first” ile kullanın
Aşağıdaki kod, puan sütununun değerine göre her oyuncuya bir sıralama atamak için Ties.method=”first” ile Rank() kullanan yeni bir sütunun nasıl oluşturulacağını gösterir:
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " first ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 3 4 D 10 4 5 E 17 5
C ve D oyuncuları aynı puana sahip olduğundan ve 3. ve 4. sıraları işgal ettiğinden, bu ikisi arasındaki ilk oyuncu (“C oyuncusu”) en düşük sırayı aldı.
Örnek 3: Rank() işlevini Ties.method=”last” ile kullanın
Aşağıdaki kod, puan sütununun değerine göre her oyuncuya bir sıralama atamak için Ties.method=”last” ile Rank() kullanan yeni bir sütunun nasıl oluşturulacağını gösterir:
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " last ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 3 5 E 17 5
C ve D oyuncuları aynı puana sahip olduğundan ve 3. ve 4. sıraları işgal ettiğinden, bu ikisi arasındaki son oyuncu (“D oyuncusu”) en düşük sırayı aldı.
Örnek 4: Rank() işlevini Ties.method=”min” ile kullanın
Aşağıdaki kod, puan sütununun değerine göre her oyuncuya bir sıralama atamak için Ties.method=”min” ile Rank() kullanan yeni bir sütunun nasıl oluşturulacağını gösterir:
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " min ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 3 4 D 10 3 5 E 17 5
C ve D oyuncuları aynı puana sahip olduğundan ve 3. ve 4. konumlarda olduklarından, her iki oyuncu da minimum sıralamayı aldı: 3 .
Örnek 5: Rank() işlevini Ties.method=”max” ile kullanın
Aşağıdaki kod, puan sütununun değerine göre her oyuncuya bir sıralama atamak için Ties.method=”max” ile Rank() kullanan yeni bir sütunun nasıl oluşturulacağını gösterir:
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " max ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 4 5 E 17 5
C ve D oyuncuları aynı puana sahip olduğundan ve 3. ve 4. konumlarda olduklarından, her iki oyuncu da maksimum rütbeyi aldı: 4 .
Örnek 6: Rank() işlevini Ties.method=”random” ile kullanın
Aşağıdaki kod, puan sütununun değerine göre her oyuncuya bir sıralama atamak için Ties.method=”random” ile Rank() kullanan yeni bir sütunun nasıl oluşturulacağını gösterir:
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " random ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 3 5 E 17 5
C ve D oyuncuları aynı puana sahip olduğundan ve 3. ve 4. konumlarda olduklarından, her oyuncuya rastgele 3 veya 4’lük bir sıra atandı.
Tie.method için “random” kullandığınızda, her değere atanan sıralamanın, kodu her çalıştırdığınızda değişebileceğini unutmayın.
Ek kaynaklar
Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
R’de sort(), order() ve Rank() nasıl kullanılır?
R’de yüzdelik sıralama nasıl hesaplanır
Dplyr kullanarak gruba göre sıralama nasıl yapılır