当一列具有相同值时,如何按行分组

Seb*_*eki 0 r

我最终得到了一个名为total的数据框,如下所示:

Rpt         Col1    Col2   Col3
Jim          5        0      4
Jim          0        8      8
Charlie      6        7      4
Jim          6        2      4
Charlie      5        5      0
Run Code Online (Sandbox Code Playgroud)

我想在Rpt列中合并具有相同名称的行,使其看起来像:

  Rpt         Col1    Col2   Col3
  Jim          11      10     16
  Charlie      11      12      4
Run Code Online (Sandbox Code Playgroud)

我尝试使用dplyr,但我可能没有真正理解语法,所以我尝试了

library(dplyr)
total2<- total %>% count(Rpt)
Run Code Online (Sandbox Code Playgroud)

但它给了我一个单独的计数列,它似乎并没有真正计算我想要的任何东西

tal*_*lat 5

使用dplyr,您可以使用summarise_each计算每列中每个Rpt的总和:

library(dplyr)
total %>% 
  group_by(Rpt) %>%
  summarise_each(funs(sum))
Run Code Online (Sandbox Code Playgroud)

或者使用data.table(与Pgibas略有不同的方法):

library(data.table)
setDT(total)[, lapply(.SD, sum), by = Rpt]
Run Code Online (Sandbox Code Playgroud)

请注意,dplyr的count函数用于计算数据帧中每个组的行数.