Modül dersleri (2/2)
Mutasyonlar ve Toplamalar
Dplyr, seçme ve filtrelemenin ötesinde, yeni hesaplanmış sütunlar oluşturmak ve verileri gruplar halinde toplayarak özetlemek için güçlü yetenekler sunar.
Yeni Sütunlar Oluşturma: mutate()
mutate() fiili, tüm orijinal sütunları olduğu gibi korurken yeni sütunları hesaplamanıza veya mevcut sütunları değiştirmenize olanak tanır.
# Adds a 'double_salary' column computed as 'salary' multiplied by 2
df %>%
mutate(double_salary = salary * 2)
# You can create multiple columns at once
df %>%
mutate(
total_cost = quantity * price,
tax = total_cost * 0.22
)Gruplandırma ve Toplama: group_by() ve summarise()
Çoğu zaman veri analizi, belirli satır grupları için (örneğin, her departman için ortalama maaşın hesaplanması) özet istatistiklerin (örneğin ortalama, toplam, sayım) hesaplanmasını gerektirir.
1. group_by()
Veri çerçevesini bir veya daha fazla sütunun değerlerine göre gruplandırır. Tek başına verinin görsel görünümünü değiştirmez, ancak dplyr'e sonraki işlemlerin "grup grup" yürütülmesi gerektiğinin sinyalini verir.
2. summarise() (veya summarize())
mean(), sum(), min(), max() veya n() (satırları sayar) gibi istatistiksel işlevleri uygulayarak birçok satırı tek bir özet satırına daraltır.
# Calculates the average salary per department
df %>%
group_by(department) %>%
summarise(mean_salary = mean(salary))Her gruba kaç kaydın ait olduğunu saymak istiyorsanız:
# Counts how many employees are in each city
df %>%
group_by(city) %>%
summarise(count = n())Kendin dene
Alıştırma 1: Hesaplanmış bir sütun oluşturun
Veri çerçevesi df göz önüne alındığında, mutate() işlevini kullanarak miktar sütununu fiyat sütunuyla çarparak toplam_fiyat adlı yeni bir sütun oluşturun. Sonucu df_new'e kaydedin.
İpucu göster
Df'de bir ardışık düzen içinde mutate(total_price = miktar * fiyat) kullanın.
3 denemeden sonra çözüm mevcut
Alıştırma 2: Gruplandırın ve ortalamayla özetleyin
Kayıtları departman sütununa göre gruplandırarak maaş sütununun ortalamasını hesaplayın. Toplanan sütunu ortalama_salary adıyla kaydedin ve nihai sonucu df_grouped'a atayın.
İpucu göster
ABD df %>% group_by(bölüm) %>% summarise(mean_salary = ortalama(maaş))
3 denemeden sonra çözüm mevcut
Alıştırma 3: Grup başına öğeleri sayın
Her şehir için satır sayısını sayın (şehir sütunu). Sayımı, n() işlevini kullanarak summarise() içindeki sayım değişkenine atayın ve nihai sonucu df_counts'a kaydedin.
İpucu göster
group_by(city) con summarise(count = n()) işlevini tek bir işlem hattında birleştirin.
3 denemeden sonra çözüm mevcut
Alıştırma 4: Çoklu özetler
Kategori sütununa göre gruplandırarak fiyat sütununun minimum değerini (min_price) ve maksimum değerini (max_price) hesaplayın. Sonucu df_summary'ye kaydedin.
İpucu göster
summarise() içinde min_price = min(price) ve max_price = max(price) ölçümlerini virgülle ayırın.
3 denemeden sonra çözüm mevcut
Alıştırma 5: Gruplandırma ve birleştirilmiş filtreler
DF'yi departman sütununa göre gruplandıran, maaş ortalamasını hesaplayan ve mutate() işlevini kullanarak bunu yeni avg_salary sütununa kaydeden bir işlem hattı yazın (Not: tüm satırları tutmak için mutate kullanın, özet değil) ve son olarak yalnızca maaşın kesinlikle avg_salary'den büyük olduğu kayıtları tutacak şekilde filtreler. Res'e kaydedin.
İpucu göster
ABD df %>% group_by(bölüm) %>% mutate(avg_salary = ortalama(maaş)) %>% filter(salary > avg_salary)
3 denemeden sonra çözüm mevcut