Come calcolare la percentuale per gruppo in r (con esempio)


È possibile utilizzare la seguente sintassi per calcolare una percentuale per gruppo in R:

 library (dplyr)

df %>%
  group_by(group_var) %>%
  mutate(percent = value_var/sum(value_var))

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

Esempio: calcolare la percentuale per gruppo in R

Supponiamo di avere il seguente frame di dati che mostra i punti segnati da giocatori di basket di squadre diverse:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'),
                 points=c(12, 29, 34, 14, 10, 11, 7, 36, 34, 22))

#view data frame
df

   team points
1 to 12
2 to 29
3 to 34
4 to 14
5 to 10
6 B 11
7 B 7
8 B 36
9 B 34
10 B 22

Possiamo utilizzare il codice seguente per creare una nuova colonna nel frame dati che visualizza la percentuale dei punti totali segnati, raggruppati per squadra:

 library (dplyr)

#calculate percentage of points scored, grouped by team
df %>%
  group_by(team) %>%
  mutate(percent = points/sum(points))

# A tibble: 10 x 3
# Groups: team [2]
   team points percent
        
 1 to 12 0.121 
 2 A 29 0.293 
 3 A 34 0.343 
 4 A 14 0.141 
 5 A 10 0.101 
 6 B 11 0.1   
 7 B 7 0.0636
 8 B 36 0.327 
 9 B 34 0.309 
10 B 22 0.2 

La colonna Percentuale indica la percentuale dei punti totali segnati da questo giocatore nella sua squadra.

Ad esempio, i giocatori della squadra A hanno segnato un totale di 99 punti.

Quindi il giocatore nella prima riga del riquadro dati che ha segnato 12 punti ha segnato un totale di 12/99 = 12,12% dei punti totali della squadra A.

Allo stesso modo, il giocatore di seconda fila nel database che ha segnato 29 punti ha segnato un totale di 29/99 = 29,29% dei punti totali per la Squadra A.

E così via.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come contare valori univoci per gruppo in R
Come calcolare le statistiche riassuntive per gruppo in R
Come calcolare la somma per gruppo in R

Aggiungi un commento

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