https://blog.csdn.net/hongweigg/article/details/49420111
https://blog.csdn.net/sinat_26917383/article/details/51086663
https://blog.csdn.net/u011219650/article/details/41380265
aggregate函數應該是數據處理中常用到的函數,簡單說有點類似sql語言中的group by,可以按照要求把數據打組聚合,然后對聚合以后的數據進行加和、求平均等各種操作。
x=data.frame(name=c("張三","李四","王五","趙六"),sex=c("M","M","F","F"),age=c(20,40,22,30),height=c(166,170,150,155))
構造一個很簡單的數據,一組人的性別、年齡和身高,可以用aggregate函數來求不同性別的平均年齡和身高
aggregate(x[,3:4],by=list(sex=x$sex),FUN=mean)
幾個注意點:
- 字符或者factor類型的列不要一起加入計算,會報錯
- by參數要構造成list,如果有多個字段,by就對應隊列,和group by多個字段是同樣的道理
x=data.frame(name=c("張三","李四","王五","趙六"),
sex=c("M","M","F","F"),age=c(20,40,22,30),height=c(166,170,150,155))
aggregate(x[,3:4],by=list(sex=x$sex),FUN=mean)
# sex age height
# 1 F 26 152.5
# 2 M 30 168.0
sex=c("M","M","F","F"),age=c(20,40,22,30),height=c(166,170,150,155))
aggregate(x[,3:4],by=list(sex=x$sex),FUN=mean)
# sex age height
# 1 F 26 152.5
# 2 M 30 168.0