0Pricing
R Academy · Ders

Veri Çerçevelerini Sütuna Göre Sıralama

order() ve dplyr'ın arrange() işlevini kullanarak veri çerçevelerinin tamamını sıralayın.

Veri Çerçevelerini Sütuna Göre Sıralama, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 4. 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.

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

Bir veri çerçevesini sıralamanın standart temel R yolu, ilgili sütunda order() kullanmak ve elde edilen indisleri satırları yeniden sıralamak için kullanmaktır. İndislerden sonra gelen virgül tüm sütunları seçer.

df <- data.frame(
  name = c('Charlie', 'Alice', 'Bob', 'Diana'),
  age  = c(35, 28, 42, 31),
  salary = c(55000, 48000, 72000, 61000)
)
df[order(df$age), ]

İşaret Değiştirerek Azalan Sıralama

Sayısal sütunlarda, sıralama yönünü tersine çevirmek için order() içinde sütunun işaretini değiştiriniz. Eksi işareti tüm değerleri tersine çevirir; böylece sıralama açısından en büyük olan değer en küçük olur.

df <- data.frame(
  name   = c('Charlie', 'Alice', 'Bob', 'Diana'),
  salary = c(55000, 48000, 72000, 61000)
)
# Highest salary first
df[order(-df$salary), ]

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

Birincil ve ardından ikincil ölçütlere göre sıralamak için order() işlevine birden çok sütun aktarınız. İkinci bağımsız değişken, ilkindeki eşitlikleri çözer. Bu, SQL'deki ORDER BY col1, col2 ifadesine benzer.

df <- data.frame(
  dept   = c('Eng', 'HR', 'Eng', 'HR', 'Eng'),
  name   = c('Zara', 'Bob', 'Alice', 'Eve', 'Mike'),
  salary = c(90000, 55000, 85000, 58000, 78000)
)
# Sort by dept, then by salary descending within dept
df[order(df$dept, -df$salary), ]

Karakter Sütunlarını Sıralama

Bir karakter sütununa göre sıralama aynı şekilde çalışır; order() sözlükbilimsel sıralamayı gerçekleştirir. Ters alfabetik sıra için işaret değiştirmek yerine decreasing = TRUE kullanınız (işaret değiştirme yalnızca sayısal değerlerde çalışır).

df <- data.frame(
  city    = c('Paris', 'Athens', 'Berlin', 'London'),
  pop_mil = c(2.1, 0.6, 3.6, 9.0)
)
# Alphabetical by city
df[order(df$city), ]
# Reverse alphabetical
df[order(df$city, decreasing = TRUE), ]

Sıralamadan Sonra Satır Numaralarını Sıfırlama

Sıralamadan sonra satır adları özgün konumları yansıtır (ör. 3, 1, 4, 2). Bunları 1'den başlayan ardışık tam sayılara sıfırlamak için row.names(df) <- NULL ayarlayınız veya sonucu data.frame() içine sarınız.

df <- data.frame(
  x = c(30, 10, 20),
  y = c('c', 'a', 'b')
)
sorted <- df[order(df$x), ]
cat('Before reset:\n'); print(sorted)
row.names(sorted) <- NULL
cat('After reset:\n');  print(sorted)

NA Değerleriyle Sıralama

Bir sıralama sütunu NA içerdiğinde, order() varsayılan olarak bunları sona yerleştirir. na.last = FALSE kullanarak NA içeren satırları en üste taşıyabilir veya önce bunları filtreleyebilirsiniz.

df <- data.frame(
  name  = c('Alice', 'Bob', 'Carol', 'Dave'),
  score = c(85, NA, 92, NA)
)
cat('NAs last (default):\n')
print(df[order(df$score), ])
cat('NAs first:\n')
print(df[order(df$score, na.last = FALSE), ])

Modern Bir Alternatif Olarak dplyr::arrange()

dplyr paketi, daha sade bir alternatif olarak arrange() işlevini sunar. dplyr temel R'nin bir parçası olmasa da söz dizimini bilmek, modern R kodlarını okumanıza yardımcı olur. Not: Burada isRunnable yalnızca söz dizimini göstermek için true değerindedir; çalıştırmak için dplyr'ın yüklenmiş olması gerekir.

# dplyr::arrange() syntax (requires dplyr installed)
# library(dplyr)
# df |> arrange(salary)           # ascending
# df |> arrange(desc(salary))     # descending
# df |> arrange(dept, desc(salary)) # multi-column

# Equivalent base R:
df <- data.frame(dept=c('A','B','A'), salary=c(50,70,60))
df[order(df$dept, -df$salary), ]

Faktörleri Düzey Sırasına Göre Sıralama

Faktör sütunları alfabetik olarak değil, düzey sıralarına göre sıralanır. Sıralamadan önce faktör düzeylerini açıkça ayarlayarak özel bir sıralama düzeni tanımlayabilirsiniz.

df <- data.frame(
  priority = factor(c('Low', 'High', 'Medium', 'High', 'Low'),
                    levels = c('Low', 'Medium', 'High')),
  task = c('T1', 'T2', 'T3', 'T4', 'T5')
)
# Sorts by factor level (Low < Medium < High)
df[order(df$priority), ]

Sıralama ve En Üstteki Satırları Seçme

Yaygın bir kalıp, bir veri çerçevesini sıraladıktan sonra head() ile en üstteki N satırı veya tail() ile en alttaki N satırı almaktır. Bu, SQL'deki ORDER BY ... LIMIT N ifadesinin temel R karşılığıdır.

df <- data.frame(
  product = c('A', 'B', 'C', 'D', 'E'),
  revenue = c(1200, 4500, 890, 3100, 2750)
)
# Top 3 by revenue
top3 <- head(df[order(-df$revenue), ], 3)
row.names(top3) <- NULL
print(top3)

Yerinde Sıralama ve Atanmış Sıralama

Sıralama, özgün veri çerçevesini değiştirmez; yeni bir veri çerçevesi döndürür. Sonucu her zaman bir değişkene atayınız (yeni bir değişkene atayabilir veya özgün veri çerçevesinin üzerine yazabilirsiniz). Sıralanmamış sürümle işiniz bittiyse özgün veri çerçevesinin üzerine yazmanız uygundur.

df <- data.frame(
  x = c(3, 1, 4, 1, 5, 9),
  y = c('c', 'a', 'd', 'b', 'e', 'i')
)
# Safe: assign to new variable
df_sorted <- df[order(df$x), ]
# Or overwrite original:
df <- df[order(df$x), ]
row.names(df) <- NULL
print(df)

Eksiksiz Sıralama İş Akışı

Çalışanları önce departman adına göre artan, ardından maaşa göre azalan sırada sıralayan, satır indislerini sıfırlayan ve sonucu düzenli biçimde görüntüleyen eksiksiz, gerçeğe uygun bir veri çerçevesi sıralama iş akışı aşağıda yer almaktadır.

employees <- data.frame(
  name   = c('Alice', 'Bob', 'Carol', 'Dave', 'Eve'),
  dept   = c('IT', 'HR', 'IT', 'HR', 'IT'),
  salary = c(85000, 58000, 92000, 63000, 78000)
)
result <- employees[order(employees$dept, -employees$salary), ]
row.names(result) <- NULL
print(result)

Kısa Kontrol

Bir veri çerçevesini df, sayısal sütununu da df$salary olarak adlandırdığınızda, temel R kullanarak bu çerçeveyi azalan sırada nasıl sıralarsınız?

Veri Çerçevelerini Sıralama: Temel Çıkarımlar

Veri çerçevelerini sıralamak için temel çıkarımlar:

  • Temel R kalıbı: df[order(df$col), ]
  • Azalan sayısal sıralama: order(-df$col) içinde - ile işareti değiştiriniz
  • Azalan karakter sıralaması: decreasing = TRUE bağımsız değişkenini kullanınız
  • Birden çok sütun: order(df$a, df$b) — ikincil sıralama eşitlikleri çözer
  • Faktörler alfabetik olarak değil, tanımlanan düzey sırasına göre sıralanır
  • Sıralamadan sonra satır adlarını row.names(df) <- NULL ile sıfırlayınız
  • Modern alternatif: Azalan sıralama için desc() ile birlikte dplyr::arrange()
df <- data.frame(
  name = c('Zara', 'Ana', 'Bob', 'Ana'),
  score = c(90, 85, 92, 88)
)
# Sort by name asc, score desc
result <- df[order(df$name, -df$score), ]
row.names(result) <- NULL
print(result)

Sıkça Sorulan Sorular

“Veri Çerçevelerini Sütuna Göre Sıralama” dersi ücretsiz mi?

Evet — “Veri Çerçevelerini Sütuna Göre Sıralama” 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.

“Veri Çerçevelerini Sütuna Göre Sıralama” dersinde ne öğreneceğim?

order() ve dplyr'ın arrange() işlevini kullanarak veri çerçevelerinin tamamını sıralayı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 4. dersidir.

“Veri Çerçevelerini Sütuna Göre Sıralama” 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