首页 > 解决方案 > 当列中的值在R中相同时如何合并数据框中的行

问题描述

我有许多来自同一个单元的观察结果,我需要合并这些行。所以像这样的数据框

  data.frame(
  fir =c("001","006","001", "006", "062"),
  sec = c(10,5,6,7,8),
  thd = c(45,67,84,54,23))

fir sec thd
001  10  45
006  5   67
001  6   84
006  7   54
062  8   23

第一列有一个代表一个单位的 3 位数字。我需要将这些行加在一起以获得每个单元的总数。其他列是需要相加的数值。所以数据框看起来像,

 fir sec thd
001  16  129
006  12  121
062  8   23

我需要它适用于第一列中的任何唯一数字。有任何想法吗?感谢您的任何帮助!

标签: r

解决方案


欢迎这是分组操作的经典案例,我们可以按组对您的逻辑进行分组,在这种情况下,我们需要 sec 和 thd 列的总和。

library(tidyverse)

df <- data.frame(
  fir =c("001","006","001", "006", "062"),
  sec = c(10,5,6,7,8),
  thd = c(45,67,84,54,23))

df %>%
  group_by(fir) %>% 
  summarise(sec_sum = sum(sec),
            thd_sum = sum(thd))

推荐阅读