我尝试使用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
提前感谢您的协助。
答案 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