Як використовувати 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *