Come contare valori distinti usando dplyr (con esempi)
È possibile utilizzare uno dei seguenti metodi per contare il numero di valori distinti in un frame di dati R utilizzando la funzione n_distinct() di dplyr :
Metodo 1: conta valori distinti in una colonna
n_distinct(df$column_name)
Metodo 2: conta valori distinti in tutte le colonne
sapply(df, function (x) n_distinct(x))
Metodo 3: conta valori distinti per gruppo
df %>% group_by (grouping_column) %>% summarize (count_distinct = n_distinct(values_column))
I seguenti esempi mostrano come utilizzare nella pratica ciascuno di questi metodi con il seguente frame di dati:
library (dplyr)
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(6, 6, 8, 10, 9, 9, 12, 12),
assists=c(3, 6, 4, 2, 4, 5, 5, 9))
#view data frame
df
team points assists
1 to 6 3
2 to 6 6
3 to 8 4
4 to 10 2
5 B 9 4
6 B 9 5
7 B 12 5
8 B 12 9
Metodo 1: conta valori distinti in una colonna
Il codice seguente mostra come utilizzare n_distinct() per contare il numero di valori distinti nella colonna ‘team’:
#count distinct values in 'team' column
n_distinct(df$team)
[1] 2
Ci sono 2 valori distinti nella colonna “squadra”.
Metodo 2: conta valori distinti in tutte le colonne
Il codice seguente mostra come utilizzare le funzioni sapply() e n_distinct() per contare il numero di valori distinti in ciascuna colonna del frame di dati:
#count distinct values in every column
sapply(df, function (x) n_distinct(x))
team points assists
2 5 6
Dal risultato possiamo vedere:
- Ci sono 2 valori distinti nella colonna “squadra”.
- Ci sono 5 valori distinti nella colonna “punti”.
- Ci sono 6 valori distinti nella colonna “aiuti”.
Metodo 3: conta valori distinti per gruppo
Il codice seguente mostra come utilizzare la funzione n_distinct() per contare il numero di valori distinti per gruppo:
#count distinct 'points' values by 'team'
df %>%
group_by (team) %>%
summarize (distinct_points = n_distinct(points))
# A tibble: 2 x 2
team distinct_points
1 to 3
2 B 2
Dal risultato possiamo vedere:
- Ci sono 3 valori di punti distinti per la squadra A.
- Ci sono 2 valori di punti separati per la squadra B.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni utilizzando dplyr:
Come ricodificare i valori utilizzando dplyr
Come sostituire NA con Zero in dplyr
Come ordinare le variabili per gruppo usando dplyr
Come selezionare la prima riga per gruppo utilizzando dplyr