首页 > 代码库 > R语言之数据汇总
R语言之数据汇总
我们在分析数据的时候,除了数据结构上的调整之外,很多时候也需要将数据进行汇总处理,比如最简单的计算行列均值、方差等,同时,数据汇总的结果也可以帮助进行一些实验设计和可视化显示,下面我们说一下如何使用R进行数据汇总处理。
一、简单的行列汇总
1.可以使用colMean()、colSums()对列计算均值和求和,使用rowSMean()、rowSums()对行计算均值和求和,这里我们可以使用[]或:选择数据的一部分,如果行或列没有设置名称,则会结果也会是一行没有命名的数字,如果数据中包含NA项,那么结果也会是NA,对此,可以设置na.rm=TRUE选项屏蔽NA。
2.apply()命令
该命令将一个汇总函数应用到所选择的数据框或矩阵的所有列,格式为:
apply(X,MARGIN,FUN,...)
其中X为所选择的数据区域,MARGIN=1为行,=2为列,FUN为汇总函数,也可以使用na.rm=TRUE来屏蔽NA项。
二、复杂的汇总函数
这里的复杂,指的是数据结构的复杂,比如数据中包含多个分类变量的情况。
1.rowsum()命令
该命令可计算数据框或矩阵的行的合计,它有一个group选项,用于选择分组变量,但是只能选择一个分组变量,对于多分组变量的数据不适用
2.tapply()命令
该命令可以作用于多分组变量情况下,但是用于汇总的向量只能选择一个,如:
> tapply(mf$Length,mfsite,FUN=sum)
第一个选项为汇总向量,第二个为分组向量,如果存在多个分组向量,可使用list()指定:
> tapply(mf$Length,list(mfsite1,mf$site2),FUN=sum)
如果指定的分组变量超过2个,则结果会被细分为多个二维表。
3.aggregate()命令
该命令的通用格式如下:
aggregate(X,by,FUN...)
X为要汇总的数据,by为分组变量,必须使用list()命令指定,FUN为汇总函数。
aggregate()命令更常使用的是公式语法:
aggregate(y~x,bu,FUN....)
其中Y为因变量也就是汇总变量,x为分组变量,这样做的好处是可以指定多个汇总变量和分组变量,如:
> aggregate(cbind(daisy,poa)~time,data=http://www.mamicode.com/flwr,FUN=mean):指定两个汇总变量
> aggregate(daisy~time*cutting,data=http://www.mamicode.com/flwr,FUN=mean):指定两个分组变量
> aggregate(cbind(daisy,poa)~time*cutting,data=http://www.mamicode.com/flwr,FUN=mean):指定两个分组变量和两个汇总变量。
aggregate()命令十分强大,不仅是因为它可以使用公式语法,指定多个汇总变量和分组变量,还有一个原因是其结果输出是一个表格,便于进一步选取和查看。
R语言之数据汇总