Como contar valores distintos usando dplyr (com exemplos)


Você pode usar qualquer um dos seguintes métodos para contar o número de valores distintos em um quadro de dados R usando a função n_distinct() de dplyr :

Método 1: contar valores distintos em uma coluna

 n_distinct(df$column_name)

Método 2: contar valores distintos em todas as colunas

 sapply(df, function (x) n_distinct(x))

Método 3: contar valores distintos por grupo

 df %>%
group_by (grouping_column) %>%
summarize (count_distinct = n_distinct(values_column))

Os exemplos a seguir mostram como usar cada um desses métodos na prática com o seguinte quadro de dados:

 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

Método 1: contar valores distintos em uma coluna

O código a seguir mostra como usar n_distinct() para contar o número de valores distintos na coluna ‘team’:

 #count distinct values in 'team' column
n_distinct(df$team)

[1] 2

Existem 2 valores distintos na coluna ‘equipe’.

Método 2: contar valores distintos em todas as colunas

O código a seguir mostra como usar as funções sapply() e n_distinct() para contar o número de valores distintos em cada coluna do quadro de dados:

 #count distinct values in every column
sapply(df, function (x) n_distinct(x))

   team points assists 
      2 5 6

Pelo resultado podemos ver:

  • Existem 2 valores distintos na coluna ‘equipe’
  • Existem 5 valores distintos na coluna “pontos”
  • Existem 6 valores distintos na coluna “ajuda”

Método 3: contar valores distintos por grupo

O código a seguir mostra como usar a função n_distinct() para contar o número de valores distintos por grupo:

 #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

Pelo resultado podemos ver:

  • Existem 3 valores de pontos distintos para o Time A.
  • Existem 2 valores de pontos separados para a Equipe B.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns usando dplyr:

Como recodificar valores usando dplyr
Como substituir NA por Zero no dplyr
Como classificar variáveis por grupo usando dplyr
Como selecionar a primeira linha por grupo usando dplyr

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *