R Academy · Ders

rank() ile Değerleri Derecelendirme

average, first, min, max ve random eşitlik bozma yöntemleriyle dereceler atayın.

3. ders / 413 adım

rank() ile Değerleri Derecelendirme, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.

rank() Ne Döndürür?

rank(x), bir vektördeki değerlerin örneklem sıralarını döndürür. En küçük değer 1, ikinci en küçük değer 2 ve bu şekilde devam eden bir sıra alır. order()'dan farklı olarak çıktı, girdiyle aynı uzunluktadır ve her konum kendi sırasını içerir.

scores <- c(78, 92, 65, 88, 71)
ranks <- rank(scores)
print(scores)
print(ranks)

Eşit Değerleri Ele Alma: Ortalama Yöntemi

Değerler eşit olduğunda rank(), sıraların nasıl atanacağını belirlemek için ties.method bağımsız değişkenini kullanır. Varsayılan değer 'average''dır: eşit öğeler, alabilecekleri sıraların ortalamasını alır.

x <- c(10, 20, 20, 30)
# Default: average of positions 2 and 3 = 2.5
rank(x)
rank(x, ties.method = 'average')

Eşitlik Yöntemi: first ve last

ties.method = 'first', eşit öğelerden vektörde önce görünenine daha düşük sırayı verir. 'last' bunun tersini yapar; önce görünen öğe daha yüksek sırayı alır.

x <- c(10, 20, 20, 30)
cat('first:', rank(x, ties.method = 'first'), '\n')
cat('last: ', rank(x, ties.method = 'last'),  '\n')

Eşitlik Yöntemi: min ve max

'min', tüm eşit öğelere alabilecekleri en düşük sırayı verir (sporda kullanılır: üçüncülük için eşit olan iki oyuncunun ikisi de 3. sırayı alır, hiçbiri 4. olmaz). 'max', tüm eşit öğelere alabilecekleri en yüksek sırayı verir.

x <- c(10, 20, 20, 30)
cat('min:', rank(x, ties.method = 'min'), '\n')
cat('max:', rank(x, ties.method = 'max'), '\n')

Eşitlik Yöntemi: random

ties.method = 'random', eşit öğelere rastgele farklı sıralar atayarak eşitlikleri çözer. Her çağrı farklı bir sonuç üretebilir. Eşsiz tamsayı sıraları gerektiğinde ancak eşitliklerin hangi sırayla çözüldüğü önemli olmadığında kullanışlıdır.

x <- c(10, 20, 20, 20, 30)
set.seed(42)
cat('random run 1:', rank(x, ties.method = 'random'), '\n')
set.seed(99)
cat('random run 2:', rank(x, ties.method = 'random'), '\n')

Yoğun Sıralama ve Standart Sıralama

R'nin rank() işlevi standart yarışma sıralaması (1, 2, 2, 4) üretir. Yoğun sıralama (1, 2, 2, 3 — aralık yok) için benzersiz değerlerde rank(x, ties.method = 'min') kullanın veya data.table ya da dplyr paketlerinden yararlanın. İşte temel R'de bir çözüm:

x <- c(10, 20, 20, 30)
# Standard ranking (gaps after ties)
cat('Standard:', rank(x, ties.method = 'min'), '\n')
# Dense ranking: rank of sorted unique values
dense <- match(x, sort(unique(x)))
cat('Dense:   ', dense, '\n')

rank() ve order() ile sort() karşılaştırması

Bu üç işlev birbiriyle ilişkilidir ancak farklı şeyler döndürür: sort(x) sıralanmış değerleri, order(x) vektörü sıralayan konumları, rank(x) ise her konumun sırasını döndürür. Aşağıda yan yana bir karşılaştırma yer almaktadır.

x <- c(30, 10, 50, 20, 40)
cat('x       :', x,        '\n')
cat('sort(x) :', sort(x),  '\n')
cat('order(x):', order(x), '\n')
cat('rank(x) :', rank(x),  '\n')

Azalan Sırada Sıralama

En büyükten en küçüğe sıralamak için (1. sıra = en yüksek değer), rank() işlevine aktarmadan önce vektörün işaretini değiştiriniz. Bu, 1. sıranın en iyi sonucu ifade ettiği liderlik tabloları için kullanılan kalıptır.

scores <- c(78, 92, 65, 88, 71)
desc_ranks <- rank(-scores)
cat('Scores:      ', scores,     '\n')
cat('Rank (best=1):', desc_ranks, '\n')

Bir Veri Çerçevesine Sıra Ekleme

Yaygın bir görev, bir veri çerçevesine sıra sütunu eklemektir. Uygun bir liderlik tablosu oluşturmak için rank() işlevini ties.method = 'min' ile kullanınız ve azalan sıralama için işareti değiştiriniz.

df <- data.frame(
  player = c('Alice', 'Bob', 'Carol', 'Dave'),
  score  = c(250, 400, 250, 375)
)
df$rank <- rank(-df$score, ties.method = 'min')
df[order(df$rank), ]

NA Değerleriyle rank()

rank() işlevinde, tıpkı sort() ve order() işlevlerinde olduğu gibi bir na.last bağımsız değişkeni bulunur. Varsayılan değer 'keep' seçeneğidir; bu seçenek NA değerlerine NA sırası atarken, NA olmayan öğeleri kendi aralarında sıralar.

x <- c(5, NA, 2, NA, 8, 1)
cat('na.last=keep:  ', rank(x, na.last = 'keep'), '\n')
cat('na.last=TRUE:  ', rank(x, na.last = TRUE),   '\n')
cat('na.last=FALSE: ', rank(x, na.last = FALSE),  '\n')

Yüzdelik Sıraları

Toplam sayıya bölerek sıraları yüzdelik değerlere dönüştürünüz. Yüzdelik sıra, değerlerin ne kadarının belirli bir öğeye eşit veya ondan küçük olduğunu gösterir. Bu yöntem istatistikte ve eğitim değerlendirmelerinde kullanışlıdır.

scores <- c(60, 75, 82, 91, 68, 77, 85, 95)
n <- length(scores)
pct_rank <- rank(scores) / n * 100
result <- data.frame(score = scores, percentile = round(pct_rank, 1))
result[order(result$score), ]

Kısa Kontrol

Eşit değere sahip tüm öğelere mümkün olan aynı en düşük sırayı (iki sporcunun 3. sırayı paylaştığı ve kimsenin 4. olmadığı spor karşılaşmalarındaki gibi) hangi ties.method seçeneği verir?

rank() İçin Temel Çıkarımlar

rank() için temel çıkarımlar:

  • rank(x) her öğenin sırasını döndürür (girdiyle aynı uzunluktadır)
  • Varsayılan ties.method = 'average': eşit öğeler sıralarının ortalamasını paylaşır
  • 'min' = spor karşılaşmalarındaki gibi (paylaşılan en düşük sıra), 'max' = paylaşılan en yüksek sıra
  • 'first' ve 'last', eşitlikleri görünme sırasına göre çözer
  • Azalan sıralar için rank(-x) kullanınız (1. sıra = en büyük değer)
  • Veri çerçevelerine df$rank <- rank(-df$score, ties.method='min') ile sıra sütunları ekleyiniz
x <- c(10, 30, 20, 30, 10)
cat('average:', rank(x, ties.method = 'average'), '\n')
cat('min:    ', rank(x, ties.method = 'min'),     '\n')
cat('max:    ', rank(x, ties.method = 'max'),     '\n')
cat('first:  ', rank(x, ties.method = 'first'),   '\n')
Başlamak ücretsiz

Yapay zeka eğitmeniyle R öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
43
Dersler
159

Sıkça Sorulan Sorular

“rank() ile Değerleri Derecelendirme” dersi ücretsiz mi?

Evet — “rank() ile Değerleri Derecelendirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.

“rank() ile Değerleri Derecelendirme” dersinde ne öğreneceğim?

average, first, min, max ve random eşitlik bozma yöntemleriyle dereceler atayın. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

R Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“rank() ile Değerleri Derecelendirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu R Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. sort() ile Vektörleri Sıralama
  2. Esnek Sıralama için order()
  3. rank() ile Değerleri Derecelendirme
  4. Veri Çerçevelerini Sütuna Göre Sıralama
← R Academy Sayfasına Dön