电竞比分网-中国电竞赛事及体育赛事平台

分享

自學(xué)R語言(十五)-aggregate包的學(xué)習(xí)

 迷途中小小書童 2019-04-15

caolong

2019年4月14日

aggregate函數(shù)應(yīng)該是數(shù)據(jù)處理中常用到的函數(shù),簡(jiǎn)單說有點(diǎn)類似sql語言中的group by,可以按照要求把數(shù)據(jù)打組聚合,然后對(duì)聚合以后的數(shù)據(jù)進(jìn)行加和、求平均等各種操作。

x=data.frame(name=c("張三","李四","王五","趙六"),sex=c("M","M","F","F"),age=c(20,40,22,30),height=c(166,170,150,155))#自己構(gòu)造一個(gè)簡(jiǎn)單的數(shù)據(jù)框,一組人的性別、年齡和身高,可以用aggregate函數(shù)來求不同性別的平均年齡和身高
x
##   name sex age height
## 1 張三   M  20    166
## 2 李四   M  40    170
## 3 王五   F  22    150
## 4 趙六   F  30    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
knitr::opts_chunk$set(echo = TRUE)

我們可以調(diào)整x之后的參數(shù)來表示后面函數(shù)作用的對(duì)象,by之后的必須是list,而且list里面的參數(shù)可以是一個(gè)或者好幾個(gè)。eg:sex=x$sex 表示新生成的數(shù)據(jù)有一個(gè)變量名為sex并且該變量的取值就是原來數(shù)據(jù)的sex這一列,而且這一列是不變的。我們可以重新調(diào)整list里面的參數(shù)看一下具體的變化如下所示

aggregate(x[,3:4],by=list(name=x$name),FUN=mean)
##   name age height
## 1 李四  40    170
## 2 王五  22    150
## 3 張三  20    166
## 4 趙六  30    155
knitr::opts_chunk$set(echo = TRUE)

我們可以重新調(diào)整list里面的參數(shù)增加至兩個(gè),看一下具體的變化如下所示

aggregate(x[,3:4],by=list(name=x$name,sex=x$sex),FUN=mean)
##   name sex age height
## 1 王五   F  22    150
## 2 趙六   F  30    155
## 3 李四   M  40    170
## 4 張三   M  20    166
knitr::opts_chunk$set(echo = TRUE)

幾個(gè)注意點(diǎn):

1.字符或者factor類型的列不要一起加入計(jì)算,會(huì)報(bào)錯(cuò)

2.by參數(shù)要構(gòu)造成list,如果有多個(gè)字段,by就對(duì)應(yīng)隊(duì)列,和group ##3.by多個(gè)字段是同樣的道理

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多