分组统计
1、假定有一组成绩数据,要求根据性别进行分组统计:
> score ID score1 score2 Gender 1 101 11.35321 0.9 male 2 102 12.58654 0.6 male 3 103 19.79380 0.9 female 4 104 12.01352 0.4 female 5 105 11.97081 0.4 female 6 106 17.37480 0.7 female 7 107 14.24884 0.3 female 8 108 18.47972 0.8 male 9 109 18.74792 0.8 male 10 110 18.90146 0.7 male
2、方法:使用aggregate(x, by, FUN)
其中x是待折叠的数据对象,by是一个变量名组成的列表,这些变量将被去掉以形成新的观测,而FUN则是用来计算描述性统计量的标量函数,它将被用来计算新观测中的值。
> aggregate(score[,c(2,3)],list(score[,4]),mean) Group.1 score1 score2 1 female 15.08035 0.54 2 male 16.01377 0.76
score[,c(2,3)] 表示对score1和score2列进行分组统计
list(score[,4])表示根据score第4列,也就是性别列进行分组统计。
mean表示统计平均值。
也可以写作下面的形式:
> aggregate(score[,c(2,3)],list(score$Gender),mean) Group.1 score1 score2 1 female 15.08035 0.54 2 male 16.01377 0.76
可选参考:
library(dplyr)
group_by(data, sex) %>% summarize_each(funs(mean), var1, var2, var3...)
|
请发表评论