Как посчитать отдельные значения с помощью dplyr (с примерами)


Вы можете использовать любой из следующих методов для подсчета количества различных значений в кадре данных R с помощью функции dplyr n_distinct() :

Способ 1: подсчитайте отдельные значения в столбце

 n_distinct(df$column_name)

Способ 2: подсчитайте разные значения во всех столбцах

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

Способ 3: подсчитайте отдельные значения по группам

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

Следующие примеры показывают, как использовать каждый из этих методов на практике со следующим фреймом данных:

 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

Способ 1: подсчитайте отдельные значения в столбце

Следующий код показывает, как использовать n_distinct() для подсчета количества различных значений в столбце «команда»:

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

[1] 2

В столбце «команда» есть 2 различных значения.

Способ 2: подсчитайте разные значения во всех столбцах

Следующий код показывает, как использовать функции sapply() и n_distinct() для подсчета количества различных значений в каждом столбце фрейма данных:

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

   team points assists 
      2 5 6

По результату мы видим:

  • В столбце «команда» есть 2 разных значения.
  • В столбце «баллы» 5 различных значений.
  • В столбце «помогает» 6 различных значений.

Способ 3: подсчитайте отдельные значения по группам

Следующий код показывает, как использовать функцию n_distinct() для подсчета количества различных значений в группе:

 #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

По результату мы видим:

  • Для команды А существует 3 различных значения очков.
  • Для команды Б предусмотрены 2 отдельных значения очков.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции с помощью dplyr:

Как перекодировать значения с помощью dplyr
Как заменить NA на Zero в dplyr
Как сортировать переменные по группам с помощью dplyr
Как выбрать первую строку по группе с помощью dplyr

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *