Dplyr: come riepilogare i dati mantenendo tutte le colonne


Quando si utilizza la funzione summarise() in dplyr , tutte le variabili non incluse nelle funzioni summarise() o group_by() verranno automaticamente rimosse.

Tuttavia, puoi utilizzare la funzione mutate() per riepilogare i dati mantenendo tutte le colonne nel frame di dati.

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

Esempio: riepiloga i dati ma mantieni tutte le colonne utilizzando dplyr

Supponiamo di avere il seguente frame di dati contenente informazioni su vari giocatori di basket:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ),
                 points=c(4, 9, 8, 12, 15, 14, 29, 30, 22),
                 assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12))

#view data frame
df

  team points assists
1 to 4 3
2 to 9 3
3 to 8 2
4 B 12 5
5 B 15 8
6 B 14 10
7 C 29 4
8 C 30 5
9 C 22 12

Possiamo utilizzare la seguente sintassi per riassumere la media dei punti segnati per squadra :

 library (dplyr)

#summarize mean points values by team
df %>%
  group_by(team) %>%
  summarize(mean_pts = mean(points))

# A tibble: 3 x 2
  team mean_pts
      
1 to 7  
2 B 13.7
3 C 27

La colonna denominata Mean_pts mostra la media dei punti segnati da ciascuna squadra.

Dal risultato possiamo vedere:

  • La media dei punti segnati dai giocatori della squadra A è 7 .
  • La media punti segnati dai giocatori della squadra B è di 13,7 .
  • La media punti segnati dai giocatori della squadra C è di 27 .

Tuttavia, supponiamo di voler mantenere tutte le altre colonne del frame di dati originale.

Possiamo usare la seguente sintassi con la funzione mutate() per fare ciò:

 library (dplyr)

#summarize mean points values by team and keep all columns
df %>%
  group_by(team) %>%
  mutate(mean_pts = mean(points)) %>%
  A group()

# A tibble: 9 x 4
  team points assists mean_pts
           
1 to 4 3 7  
2 to 9 3 7  
3 to 8 2 7  
4 B 12 5 13.7
5 B 15 8 13.7
6 B 14 10 13.7
7 C 29 4 27  
8 C 30 5 27  
9 C 22 12 27

Usando la funzione mutate() , possiamo creare una nuova colonna chiamata Mean_pts che riassume la media dei punti segnati per squadra mantenendo tutte le altre colonne del data frame originale.

Risorse addizionali

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

dplyr: come mutare una variabile se la colonna contiene una stringa
dplyr: come modificare i livelli dei fattori utilizzando mutate()
dplyr: come aggiungere su più colonne

Aggiungi un commento

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