Come creare una tabella di frequenza per gruppo in r


È possibile utilizzare le seguenti funzioni dal pacchetto dplyr per creare una tabella di frequenza per gruppo in R:

 library (dplyr)

df %>%
  group_by (var1, var2) %>%
  summarize (Freq=n())

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: creare una tabella di frequenza per gruppo

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'G', 'F', 'G', 'F', 'F', 'C'))

#view data frame
df

  team position
1 AG
2 AG
3 AG
4 AF
5 BG
6 BF
7 BF
8 BC

Diciamo che vogliamo creare una tabella di frequenza che mostri la frequenza di ciascuna posizione, raggruppata per squadra.

Possiamo usare la seguente sintassi per fare ciò:

 library (dplyr)

#calculate frequency of position, grouped by team
df %>%
group_by (team, position) %>%
summarize (Freq=n())

# A tibble: 5 x 3
# Groups: team [2]
  team position Freq
       
1 AF 1
2 AG 3
3 BC 1
4 BF 2
5 BG 1

Ecco come interpretare il risultato:

  • 1 giocatore della squadra A occupa la posizione “F”
  • 3 giocatori della squadra A hanno la posizione ‘G’
  • 1 giocatore della squadra B occupa la posizione “C”
  • 2 giocatori della squadra B hanno la posizione ‘F’
  • 1 giocatore della squadra B occupa la posizione “G”

Tieni presente che possiamo rinominare la colonna che contiene le frequenze modificando il nome della variabile nella funzione summary() .

Ad esempio, potremmo invece rinominare la colonna “count”:

 library (dplyr)

#calculate frequency of position, grouped by team
df %>%
  group_by (team, position) %>%
  summarize (count=n())

# A tibble: 5 x 3
# Groups: team [2]
  team position count
       
1 AF 1
2 AG 3
3 BC 1
4 BF 2
5 BG 1

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni in dplyr:

Come calcolare le frequenze relative usando dplyr
Come ordinare le variabili per gruppo usando dplyr
Come selezionare le colonne per indice utilizzando dplyr

Aggiungi un commento

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