如何根据条件显示数据框列的均值

时间:2015-04-01 16:54:07

标签: r dataframe

我有一个如下所示的数据框:

> 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 个答案:

答案 0 :(得分:3)

尝试

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

或者

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