R Academy · Ders

Esnek Sıralama için order()

Bir veya birden fazla ölçüte göre sıralama yapmak için indeks permütasyonunu elde edin.

2. ders / 413 adım

Esnek Sıralama için order(), CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 2. 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.

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

order() sıralanmış değerleri döndürmez; vektörü sıralayacak indisleri döndürür. Bu dolaylılık, ilgili herhangi bir yapıya bu indisleri uygulayabilmenizi sağladığı için onu sort()'tan çok daha güçlü kılar.

x <- c(30, 10, 50, 20, 40)
indices <- order(x)
print(indices)
# Verify: x[indices] gives sorted x
print(x[indices])

Azalan Düzende order()

sort() gibi order() da azalan bir dizi oluşturan indisleri döndürmek için decreasing = TRUE değerini kabul eder. Bu, en büyükten en küçüğe sıralama yapmak için kullanışlıdır.

scores <- c(78, 92, 65, 88, 71)
desc_order <- order(scores, decreasing = TRUE)
cat('Rank order (index):', desc_order, '\n')
cat('Scores high to low:', scores[desc_order], '\n')

Bir Veri Çerçevesini Tek Sütuna Göre Sıralama

order()'ın en pratik kullanımı, bir veri çerçevesini sütunlarından birine göre sıralamaktır. Sütunu order()'a aktarın, ardından veri çerçevesinin tüm satırlarını yeniden sıralamak için bu indisleri kullanın.

df <- data.frame(
  name = c('Charlie', 'Alice', 'Bob', 'Diana'),
  age  = c(35, 28, 42, 31)
)
sorted_df <- df[order(df$age), ]
print(sorted_df)

Bir Veri Çerçevesini Azalan Düzende Sıralama

Bir veri çerçevesini sayısal bir sütuna göre en büyükten en küçüğe sıralamak için decreasing = TRUE değerini order()'a aktarın. Çıktıdaki satır adları (indisler), özgün konumları yansıtır.

products <- data.frame(
  item  = c('Pen', 'Notebook', 'Stapler', 'Tape'),
  price = c(1.5, 4.99, 7.25, 2.10)
)
products[order(products$price, decreasing = TRUE), ]

Birden Çok Sütuna Göre Sıralama

Birden çok vektörü order()'a virgüllerle ayırarak aktarın. R önce ilk bağımsız değişkene göre sıralar, ardından eşitlikleri ikinci, üçüncü ve sonraki bağımsız değişkenleri kullanarak çözer. Bu, SQL'deki ORDER BY yan tümcesinin davranışına benzer.

df <- data.frame(
  dept   = c('HR', 'IT', 'HR', 'IT', 'HR'),
  salary = c(50000, 70000, 60000, 65000, 55000)
)
# Sort by dept first, then by salary within dept
df[order(df$dept, df$salary), ]

Karışık Artan/Azalan Çoklu Sıralama

Bir sütunu artan, diğerini azalan düzende sıralamak için azalan sayısal sütunu - ile negatifleyin. Karakter sütunlarında, sıralanabilir bir tamsayı gösterimi elde etmek için xtfrm() kullanın ve ardından bunu negatifleyin.

df <- data.frame(
  dept   = c('HR', 'IT', 'HR', 'IT', 'HR'),
  salary = c(50000, 70000, 60000, 65000, 55000)
)
# dept ascending, salary descending
df[order(df$dept, -df$salary), ]

order() İçinde NA Değerlerini Ele Alma

order() da sort() gibi bir na.last bağımsız değişkenine sahiptir. Varsayılan olarak na.last = NA değerleri NA'ları sona koyar. Konumlarını açıkça denetlemek için na.last = TRUE veya na.last = FALSE ayarlayın.

vals <- c(5, NA, 2, NA, 8, 1)
# Default: NAs sorted last
order(vals)
# NAs first
order(vals, na.last = FALSE)

Sıralamadan Sonra Satır Adlarını Koruma

Bir veri çerçevesini satır indisleriyle alt kümeye ayırdığınızda R, özgün satır adlarını korur. Sıralamadan sonra bunları 1, 2, 3, ... biçimine döndürmek için row.names(df) <- NULL veya reset= yaklaşımlarını kullanın.

df <- data.frame(
  city = c('Paris', 'Tokyo', 'NYC'),
  pop  = c(2.1, 13.9, 8.3)
)
sorted <- df[order(df$pop), ]
print(sorted)
# Reset row names
row.names(sorted) <- NULL
print(sorted)

order() ve sort() Yan Yana

Temel fark şudur: sort(x) sıralanmış değerleri, order(x) ise sıralanmış konumları döndürür. Yalnızca değerlere ihtiyacınız olduğunda sort()'u, ilgili veri yapılarını birlikte yeniden düzenlemeniz gerektiğinde order()'ı kullanın.

x <- c(50, 20, 80, 10, 60)
cat('sort(x)  :', sort(x), '\n')
cat('order(x) :', order(x), '\n')
cat('x[order(x)]:', x[order(x)], '\n')

Bir Veri Çerçevesini Dize Sütununa Göre Sıralama

Karakter sütunlarına göre de sıralama yapabilirsiniz. order(df$name), name sütunundaki adların alfabetik düzenine göre satır indislerini döndürür; ardından bu indisleri veri çerçevesini yeniden sıralamak için kullanırsınız.

employees <- data.frame(
  name   = c('Zara', 'Ahmed', 'Maria', 'Bruno'),
  tenure = c(3, 7, 2, 5)
)
employees[order(employees$name), ]

Karmaşık Sıralamalar için order() Zincirleme

Üç düzeyli sıralama oldukça basittir: order()'a üç vektör aktarın. Her ek bağımsız değişken, önceki bağımsız değişkenlerdeki eşit değerler için eşitlik bozucu olarak kullanılır.

df <- data.frame(
  region = c('West', 'East', 'West', 'East', 'West'),
  dept   = c('HR', 'IT', 'HR', 'IT', 'IT'),
  score  = c(85, 90, 78, 88, 92)
)
df[order(df$region, df$dept, df$score), ]

Kısa Denetim

order(x), bir x vektörüne uygulandığında ne döndürür?

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

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

  • order(x) değerleri değil indisleri döndürür; sıralanmış değerleri almak için x[order(x)] kullanın
  • Veri çerçevelerini df[order(df$col), ] ile sıralayın
  • Çoklu sütun sıralaması: order(df$a, df$b) — a içindeki eşitlikler b ile çözülür
  • Çoklu sıralamada azalan düzen için sayısal sütunları - ile negatifleyin
  • NA konumunu na.last = TRUE/FALSE/NA ile denetleyin
  • sort()'un aksine order(), paralel yapıları birlikte sıralamanıza olanak tanır
df <- data.frame(
  name  = c('Eve', 'Bob', 'Alice', 'Charlie'),
  score = c(88, 92, 88, 75)
)
# Sort by score descending, then name ascending for ties
df[order(-df$score, df$name), ]
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

“Esnek Sıralama için order()” dersi ücretsiz mi?

Evet — “Esnek Sıralama için order()” 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.

“Esnek Sıralama için order()” dersinde ne öğreneceğim?

Bir veya birden fazla ölçüte göre sıralama yapmak için indeks permütasyonunu elde edin. 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 2. dersidir.

“Esnek Sıralama için order()” 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