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.
# 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.
# 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.
# 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.
# 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
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.
İpucu göster
ABD: df_selected <- select(df, ad, yaş)
3 denemeden sonra çözüm mevcut
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.
İpucu göster
Filter(df, age > 18) işlevini kullanın ve sonucu df_adults'a atayın.
3 denemeden sonra çözüm mevcut
İş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.
İpucu göster
Yazı: res <- df %>% filtre(yaş > 18) %>% seç(isim)
3 denemeden sonra çözüm mevcut
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.
İ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
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.
İ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