如何在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

我们可以使用以下语法来合并idEmployee列中具有相同值的行,然后聚合剩余的列:

 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

结果是一个数据框,该数据框组合了原始数据框中IDEmployee列中具有相同值的所有行,然后计算SalesReturns列中值的总和。

注意:我们选择使用sum函数聚合销售和退货列,但如果您愿意,您可以通过其他指标(例如平均值)进行聚合。

相关:如何在 dplyr 中使用 across() 函数

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中组合列表
如何在R中组合两个向量
如何将R中的两个数据框与不同的列组合起来

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注