2015-04-01 79 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)