Как использовать ungroup() в dplyr (с примерами)


Вы можете использовать функцию ungroup() в dplyr, чтобы разгруппировать строки после использования функции group_by() для суммирования одной переменной в группе.

В следующем примере показано, как использовать эту функцию на практике.

Пример: как использовать ungroup() в dplyr

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 dots=c(14, 18, 22, 26, 36, 34),
                 assists=c(5, 4, 4, 8, 7, 3))

#view data frame
df

  team points assists
1 to 14 5
2 to 18 4
3 to 22 4
4 B 26 8
5 B 36 7
6 B 34 3

Теперь предположим, что мы используем следующий код для расчета среднего значения очков , сгруппированного по командам :

 library (dplyr)

#calculate mean of points, grouped by team
df_new <- df %>%
            group_by(team) %>%
            summarize(mean_points = mean(points)) %>%
            A group()

#view results
df_new

# A tibble: 2 x 2
  team mean_points
         
1 to 18
2 B 32

Используя этот синтаксис, мы можем вычислить среднее значение очков , сгруппированных по командам , но мы потеряли столбец передач .

Чтобы сохранить столбец помощников , мы можем использовать mutate() вместо summary() и по-прежнему использовать ungroup() в конце:

 library (dplyr)

#calculate mean of points, grouped by team
df_new <- df %>%
            group_by(team) %>%
            mutate(mean_points = mean(points)) %>%
            A group()

#view results
df_new

# A tibble: 6 x 4
  team points assists mean_points
              
1 A 14 5 18
2 A 18 4 18
3 A 22 4 18
4 B 26 8 32
5 B 36 7 32
6 B 34 3 32

На этот раз мы можем сохранить столбец передач и с помощью функции mutate() просто добавили новый столбец под названием Mean_points , который отображает среднее значение очков для каждой команды.

Поскольку мы также использовали функцию ungroup() , мы можем выполнять вычисления в этом новом фрейме данных, не беспокоясь о вычислениях, на которые влияют сгруппированные переменные.

Если бы мы не использовали функцию ungroup() , строки в фрейме данных все равно были бы сгруппированы вместе, что могло бы иметь непредвиденные последствия, когда мы позже будем выполнять другие вычисления.

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

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

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

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

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