Come calcolare le frequenze relative usando dplyr


Spesso potresti voler calcolare le frequenze/proporzioni relative dei valori in una o più colonne di un frame di dati in R.

Fortunatamente, questo è facile da fare utilizzando le funzioni del pacchetto dplyr . Questo tutorial mostra come utilizzare queste funzioni per calcolare le frequenze relative sul seguente frame di dati:

 #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

Esempio 1: Frequenza relativa di una variabile

Il codice seguente mostra come calcolare la frequenza relativa di ciascuna squadra nel frame di dati:

 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

Questo ci dice che la squadra A rappresenta il 42,9% di tutte le righe nel frame di dati mentre la squadra B rappresenta il restante 57,1% delle righe. Tieni presente che insieme la loro somma dà il 100%.

Correlato: La guida completa: come raggruppare e riepilogare i dati in R

Esempio 2: frequenza relativa di più variabili

Il seguente codice mostra come calcolare la frequenza relativa delle posizioni per squadra:

 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

Questo ci dice che:

  • Il 66,7% dei giocatori della squadra A è nella posizione F.
  • Il 33,3% dei giocatori della squadra A è nella posizione G.
  • Il 25,0% dei giocatori della squadra A è nella posizione F.
  • Il 75,0% dei giocatori della squadra B è nella posizione G.

Correlati: Come utilizzare Mutate per creare nuove variabili in R

Esempio 3: mostra le frequenze relative come percentuali

Il seguente codice mostra come calcolare la frequenza relativa delle posizioni per squadra e come visualizzare queste frequenze relative come percentuali:

 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%

Puoi trovare altri tutorial su R qui .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *