我最终得到了一个名为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
我想在Rpt列中合并具有相同名称的行,使其看起来像:
Rpt Col1 Col2 Col3
Jim 11 10 16
Charlie 11 12 4
我尝试使用dplyr,但我可能没有真正理解语法,所以我尝试了
library(dplyr)
total2<- total %>% count(Rpt)
但是它给了我一个单独的计数列,它似乎并不算什么我想要的
答案 0 :(得分:5)
使用dplyr,您可以使用summarise_each
计算每列中每个Rpt的总和:
library(dplyr)
total %>%
group_by(Rpt) %>%
summarise_each(funs(sum))
或者使用data.table(与Pgibas略有不同):
library(data.table)
setDT(total)[, lapply(.SD, sum), by = Rpt]
请注意,dplyr的count
函数用于计算数据框中每个组的行数。
答案 1 :(得分:3)
尝试:
aggregate(. ~ Rpt, data = df, FUN = sum)
Rpt Col1 Col2 Col3
1 Charlie 11 12 4
2 Jim 11 10 16
答案 2 :(得分:3)
使用data.table
library(data.table)
total <- data.table(total)
total[, list(sum(Col1),sum(Col2),sum(Col3)), by=list(Rpt)]