如何对符合多个条件的数据框中的所有值求和?

时间:2016-09-09 06:46:13

标签: r apply sapply

我尝试使用sapply(或类似的)函数来汇总整个数据集中符合多个条件的所有值。

我能够为特定匹配编写代码,但我不确定如何使用R来应用数据框中的每个唯一匹配。

例如,如果我的数据框由3列构成

col1 <- c("a", "a", "a", "b", "b", "b", "b", "b", "b")
col2 <- c(1, 1, 1, 2, 2, 2, 1, 1, 1)
col3 <- c(10, 5, 10, 5, 5, 1, 3, 4, 5)
df <- data.frame(col1, col2, col3)

以下是我用于一场比赛的代码:

tmp <- subset(df, col1 == "a" & col2==1)
sum(tmp[,3])

此代码正确返回25,表示与col3函数中的2个条件匹配的subset总和。

如何对数据框中的3个唯一组合进行此计算?我正在寻找以下输出

col1  col2 sum_col3
a     1    25
b     1    12
b     2    11

提前感谢您的协助。

1 个答案:

答案 0 :(得分:0)

以下是您可以尝试的内容:

> result <- aggregate(col3 ~ col1 + col2 , df, sum)
> result
  col1 col2 col3
1    a    1   25
2    b    1   12
3    b    2   11