分組統計
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...)