Ana içeriğe geç
Modül 4 · Ders 1 ders 2Kurstaki 7/10~12 min
Modül dersleri (1/2)

Verileri Filtreleme ve Seçme

Tidyverse, ortak bir felsefeyi, dilbilgisini ve veri yapılarını paylaşan, veri bilimi için tasarlanmış bir R paketleri koleksiyonudur. Bu paketteki veri işlemeye yönelik çekirdek pakete dplyr adı verilir.

dplyr, veri çerçevesi manipülasyonunu son derece sezgisel hale getiren bir dizi işlevi ("fiiller") sunar.


Boru Operatörü (%>% veya |>)

Tidyverse felsefesi operasyonların birlikte zincirlenmesine odaklanır. Kanal operatörü %>% (veya R 4.1+'da tanıtılan yerel kanal |>) bir ifadenin sonucunu alır ve onu ilk argüman olarak sonraki fonksiyona iletir. Bu, iç içe geçmiş işlev çağrılarını ortadan kaldırır ve çalışma alanınızın geçici değişkenlerle kalabalıklaşmasını önler.

R
# Without pipe:
filter(select(df, name, age), age > 20)

# With pipe:
df %>%
  select(name, age) %>%
  filter(age > 20)

Filtreleme ve Seçme için dplyr Fiiller

Bir veri çerçevesinden veri çıkarmak için kullanılan üç temel fiil şunlardır:

1. select()

Bir veri çerçevesinden belirli sütunları seçer. Saklanacak sütun adlarını listeleyebilir veya sütunları hariç tutmak için - önekini kullanabilirsiniz.

R
# Select the 'name' and 'salary' columns
select(df, name, salary)

# Remove the 'address' column
select(df, -address)

2. filter()

Satırları bir veya daha fazla mantıksal koşula göre filtreler.

R
# Filter rows where age is greater than 30
filter(df, age > 30)

# Filter using multiple conditions (logical AND)
filter(df, age > 30, department == "HR")

3. arrange()

Satırları bir veya daha fazla sütunun değerlerine göre sıralar. Sıralama düzeni varsayılan olarak artan şekildedir. Azalan düzende sıralamak için sütun adını desc() içine sarın.

R
# Sort by age (ascending)
arrange(df, age)

# Sort by salary (descending)
arrange(df, desc(salary))

Kendin dene

Alıştırma 1: Sütunları seçin

Egzersiz#r.m4.l1.e1
Denemeler: 0Yükleniyor…

df veri çerçevesi göz önüne alındığında, select()'i kullanarak adı ve yaş sütunlarını seçin ve sonucu df_selected'e kaydedin.

Düzenleyici yükleniyor…
İpucu göster

ABD: df_selected <- select(df, ad, yaş)

3 denemeden sonra çözüm mevcut

Egzersiz#r.m4.l1.e2
Denemeler: 0Yükleniyor…

Yaş sütununun kesinlikle 18'den büyük olduğu df veri çerçevesinin satırlarını filtreleyin ve sonucu df_adults'a kaydedin.

Düzenleyici yükleniyor…
İpucu göster

Filter(df, age > 18) işlevini kullanın ve sonucu df_adults'a atayın.

3 denemeden sonra çözüm mevcut

Egzersiz#r.m4.l1.e3
Denemeler: 0Yükleniyor…

İşlemleri zincirlemek için %>% kanal operatörünü kullanın: önce yalnızca yaş> 18 olan kayıtları tutarak df'yi filtreleyin ve ardından ad sütununu seçin. Sonucu res'e kaydedin.

Düzenleyici yükleniyor…
İpucu göster

Yazı: res <- df %>% filtre(yaş > 18) %>% seç(isim)

3 denemeden sonra çözüm mevcut

Egzersiz#r.m4.l1.e4
Denemeler: 0Yükleniyor…

Arrange() ve desc() kullanarak maaş sütununa göre df veri çerçevesinin satırlarını azalan düzende sıralayın. Sonucu df_sorted'a kaydedin.

Düzenleyici yükleniyor…
İpucu göster

ABD tüm iç hatlarını bir boru hattına göre ayarlıyor veya doğrudan geliyor.

3 denemeden sonra çözüm mevcut

Egzersiz#r.m4.l1.e5
Denemeler: 0Yükleniyor…

Df'ye tam bir işlem hattı yazın: departmanın 'BT'ye eşit olduğu kayıtları filtreleyin, sütun adını ve maaşı seçin ve sonucu maaşa göre (artan) sıralayın. Nihai sonucu res'e kaydedin.

Düzenleyici yükleniyor…
İpucu göster

Filtreyi (bölüm == 'BT') zincirlemek, seçmek (isim, maaş) ve düzenlemek (maaş) için %>% kanalını kullanın.

3 denemeden sonra çözüm mevcut