Dplyr kullanılarak göreceli frekanslar nasıl hesaplanır?
Genellikle R’deki bir veri çerçevesinin bir veya daha fazla sütunundaki değerlerin göreceli frekanslarını/oranlarını hesaplamak isteyebilirsiniz.
Neyse ki dplyr paketindeki işlevleri kullanarak bunu yapmak kolaydır. Bu eğitimde, aşağıdaki veri çerçevesinde göreceli frekansları hesaplamak için bu işlevlerin nasıl kullanılacağı gösterilmektedir:
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'), position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'), points = c(12, 15, 19, 22, 32, 34, 39)) #view data frame df team position points 1 AG 12 2 AF15 3 FY 19 4 BG 22 5 BG 32 6 BG 34 7 BF 39
Örnek 1: Bir değişkenin bağıl frekansı
Aşağıdaki kod, veri çerçevesindeki her takımın göreceli sıklığının nasıl hesaplanacağını gösterir:
library(dplyr) df %>% group_by (team) %>% summarize (n = n()) %>% mutate (freq = n / sum(n)) # A tibble: 2 x 3 team n freq 1 to 3 0.429 2 B 4 0.571
Bu bize A Takımının veri çerçevesindeki tüm satırların %42,9’unu, B Takımının ise kalan %57,1’ini oluşturduğunu gösterir. Toplamlarının %100’e kadar çıktığını unutmayın.
İlgili: Tam Kılavuz: R’de Veriler Nasıl Gruplandırılır ve Özetlenir
Örnek 2: Birkaç değişkenin bağıl frekansı
Aşağıdaki kod, takım başına pozisyonların göreceli sıklığının nasıl hesaplanacağını gösterir:
library(dplyr) df %>% group_by (team, position) %>% summarize (n = n()) %>% mutate (freq = n / sum(n)) # A tibble: 4 x 4 # Groups: team [2] team position n freq 1 AF 2 0.667 2 AG 1 0.333 3 BF 1 0.250 4 BG 3 0.750
Bu bize şunu söylüyor:
- A takımı oyuncularının %66,7’si F pozisyonundadır.
- A takımı oyuncularının %33,3’ü G pozisyonundadır.
- A takımı oyuncularının %25,0’ı F pozisyonundadır.
- B takımı oyuncularının %75,0’ı G pozisyonundadır.
İlgili: R’de Yeni Değişkenler Oluşturmak İçin Mutate Nasıl Kullanılır
Örnek 3: Göreli frekansları yüzde olarak gösterin
Aşağıdaki kod, pozisyonların göreli sıklığının takıma göre nasıl hesaplanacağını ve bu göreli sıklıkların yüzde olarak nasıl görüntüleneceğini gösterir:
library(dplyr) df %>% group_by (team, position) %>% summarize (n = n()) %>% mutate (freq = paste0(round(100 * n/sum(n), 0), ' % ')) # A tibble: 4 x 4 # Groups: team [2] team position n freq 1 AF 2 67% 2 GA 1 33% 3 BF 1 25% 4 BG 3 75%
Daha fazla R eğitimini burada bulabilirsiniz.