1. 程式人生 > >R語言常用函式之aggregate

R語言常用函式之aggregate

http://blog.sina.com.cn/s/blog_457b70790101dvbh.html

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