R:有没有一种有效的方法在一列上执行groupBy并将另一列相加?

时间:2014-04-01 03:37:04

标签: r aggregate plyr

我正在尝试使用R。

处理两列

我希望能够将第1列分组,但总值为2。

col1 col2
A    3
B    2
A    5
B    1
B    4

示例结果应为:

A    8
B    7

我看过“aggregate”,“summaryBy”和“by”两者,但我遗漏了一些东西,因为我没有得到所需的输出。

任何帮助将不胜感激......

2 个答案:

答案 0 :(得分:2)

请考虑将您的数据称为dat,然后使用aggregate,它适用于我

> aggregate(.~col1, FUN="sum", data=dat )
  col1 col2
1    A    8
2    B    7

有关更多示例see this post

答案 1 :(得分:1)

data.table 是您的朋友!

有关http://datatable.r-forge.r-project.org/

的更多信息
library(data.table)
dt <- data.table(your_dataframe,key="col1")
dt[,list(col2=sum(col2)),by="col1" ]