2016-09-09 79 views
0

我正在嘗試使用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符合subset函數中的2條標準。

如何對數據框中的3個獨特組合進行此計算?我正在尋找以下輸出

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

感謝您提前幫助。

+1

在基礎R標準的做法是'aggregate'?另請看看這裏:http://stackoverflow.com/questions/1660124/how-to-sum-a-variable-by-group –

回答

0

這裏是你可以嘗試什麼:

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

謝謝。我不知道聚合函數。那就是訣竅。 – jacoby

相關問題