Как объединить строки с одинаковыми значениями столбцов в r


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

 library (dplyr)

df %>%
  group_by(group_var1, group_var2) %>%
  summarise(across(c(values_var1, values_var2), sum))

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

Пример: объединение строк с одинаковыми значениями столбцов в R

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

 #create data frame
df <- data. frame (id=c(101, 101, 102, 103, 103, 103),
                 employee=c('Dan', 'Dan', 'Rick', 'Ken', 'Ken', 'Ken'),
                 sales=c(4, 1, 3, 2, 5, 3),
                 returns=c(1, 2, 2, 1, 3, 2))

#view data frame
df

   id employee sales returns
1 101 Dan 4 1
2 101 Dan 1 2
3 102 Rick 3 2
4 103 Ken 2 1
5 103 Ken 5 3
6 103 Ken 3 2

Мы можем использовать следующий синтаксис для объединения строк, имеющих одинаковое значение в столбцах id и «Сотрудник », а затем агрегировать оставшиеся столбцы:

 library (dplyr)

#combine rows with same value for id and employee and aggregate remaining columns
df %>%
  group_by(id, employee) %>%
  summarise(across(c(sales, returns), sum))

# A tibble: 3 x 4
#Groups: id[3]
     id employee sales returns
          
1 101 Dan 5 3
2 102 Rick 3 2
3 103 Ken 10 6

Результатом является фрейм данных, который объединяет все строки исходного фрейма данных, которые имели одинаковое значение в столбцах «Идентификатор » и «Сотрудник », а затем вычисляет сумму значений в столбцах « Продажи » и « Возвраты ».

Примечание . Мы решили агрегировать столбцы продаж и возвратов с помощью функции суммы , но при желании вы можете агрегировать их по другому показателю, например по среднему показателю .

Связано: Как использовать функциюthrough() в dplyr

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

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

Как объединить списки в R
Как объединить два вектора в R
Как объединить два фрейма данных в R с разными столбцами

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

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