2015-04-01 61 views
2

我有一個數據幀,看起來像這樣一個數據幀列:如何顯示平均基於條件

> head(diabetes) 
    tp gl bp t s bm  p a class .row 
1 6 148 72 35 0 33.6 0.627 50  0 1 
2 1 85 66 29 0 26.6 0.351 31  1 2 
3 8 183 64 0 0 23.3 0.672 32  0 3 
4 1 89 66 23 94 28.1 0.167 21  1 4 
5 0 137 40 35 168 43.1 2.288 33  0 5 
6 5 116 74 0 0 25.6 0.201 30  1 6 

我知道我可以看到用於與summary(diabetes)所有列;但是,我希望看到每列的方法與class列相關。班級列只能有兩個值01。所以我希望看到每個欄的平均值爲01

例如:

> summary(diabetes$tp) #shows mean for tp column 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
    0.000 1.000 3.000 3.845 6.000 17.000 
> summary(diabetes$tp$class==0) #my effort to show mean for tp column when class == 0 
+1

爲了實現與最後的努力成功的話將需要:'摘要(糖尿病$ TP [TP $ class == 0])' – 2015-04-01 17:23:45

回答

3

嘗試

library(dplyr) 
diabetes %>% 
     group_by(class) %>% 
     summarise_each(funs(mean), -.row) 

或者

aggregate(.~class, diabetes[-10], mean)