数据汇总丨数析学院

问题

在R中,如何对分组的数据进行汇总(统计其均值、方差等)?

指南

下文中将介绍三种可用于对根据特定变量分组后的数据分别调用汇总函数(例如均值、标准差等等)的方法。

ddply()函数:这是最为简便的方法,需要调用plyr包,我们在此大力推荐大家使用。

summarizeBy()函数:这也是个相对简单的方法,需要调用doBy包。

aggregate()函数:这个函数内置于R的原封安装中,相对来说使用起来会较为复杂一点。

假设我们拥有如下数据,根据数据中样本性别和条件的不同,我们可以将其分为F-placeboF-aspirinM-placeboM-aspirin四个组别。我们的任务是,分别统计每个组别中的样本个数、变量change的均值、标准差以及其均值标准误。

数据汇总丨数析学院_第1张图片

使用ddply

数据汇总丨数析学院_第2张图片

缺失值处理

如果数据中存在确实值NA,那我们就需要对每一个函数设置参数na.rm=TRUE。函数length()没有内置na.rm选项,所以对于这种情况我们需要使用sum(!is.na(...))语句,来确认数据集中有多少的非缺失值。

数据汇总丨数析学院_第3张图片

一个用于样本计数以及计算均值、标准差、均值标准误和置信区间的函数

有时我们不需要像上文所述方法一样手动的取指定我们需要用于标准差计算的值,构建一个函数便能帮我们搞定以下所有的事:

计算均值、计算标准差、样本计数

计算均值标准误(友情提示,这个值在计算过程中不会用到组内变量。更多详情见../../Graphs/Plotting means and error bars (ggplot2))

计算95%的置信区间(或是其他你所需求的数值)

对列进行重命名从而使结果数据集更便于进一步的操作

为了使用这个函数,我们需要在进行计算前先把下面的代码粘贴到自己的程序中:

数据汇总丨数析学院_第4张图片
数据汇总丨数析学院_第5张图片

运用实例:summarySE函数帮你一步搞定

数据汇总丨数析学院_第6张图片

用NA来填充数据集中为空的组合情况

有些时候,汇总数据框中会存在一些空的因素组合情况,也就是说,这些组合理论上是可以存在的,但是并没有实际出现在我们的原始数据集中。有时,我们需要在数据框中用NA值对将这样的组合对应的内容进行替换填充。要完成这一点,我们需要在调用ddply和summarySE的相关语句时设置参数.drop=FALSE。

运用实例:

数据汇总丨数析学院_第7张图片

使用

使用summarizeBy()对数据进行折叠汇总:

数据汇总丨数析学院_第8张图片

需要注意的是,这样的均值标准误并不适用于组内变量的比较更多详情见../../Graphs/Plotting means and error bars (ggplot2)。

缺失值处理

如果数据中存在缺失值NA,那我们就需要对每一个函数设置参数na.rm=TRUE。函数length()没有内置na.rm选项,所以对于这种情况我们需要使用sum(!is.na(...))语句,来确认数据集中有多少的非缺失值。

数据汇总丨数析学院_第9张图片

一个用于样本计数以及计算均值、标准差、均值标准误和置信区间的函数

和对ddply包的使用类似的,通过组合运用doBy包中的函数,我们也可以构建一个类似的函数summarySE,帮我们搞定以下所有的事:

计算均值、计算标准差、样本计数

计算均值标准误(友情提示,这个值在计算过程中不会用到组内变量。更多详情见../../Graphs/Plotting means and error bars (ggplot2))

计算95%的置信区间(或是其他你所需求的数值)

对列进行重命名从而使结果数据集更便于进一步的操作

为了使用这个函数,我们需要在进行计算前先把下面的代码粘贴到自己的程序中:

数据汇总丨数析学院_第10张图片
数据汇总丨数析学院_第11张图片

运用实例:summarySE函数帮你一步搞定

数据汇总丨数析学院_第12张图片

用NA来填充数据集中为空的组合情况

有些时候,汇总数据框中会存在一些空的因素组合情况,也就是说,这些组合理论上是可以存在的,但是并没有实际出现在我们的原始数据集中。有时,我们需要在数据框中用NA值对将这样的组合对应的内容进行替换填充。

下面的函数将帮助我们将0值填充入所有的空缺组合对应的内容:

数据汇总丨数析学院_第13张图片

运用实例:

数据汇总丨数析学院_第14张图片

使用

aggregate函数使用起来可能相对繁琐一些,但由于它是R自带的内置函数,因而我们在使用它之前不必安装其他的程序包。

数据汇总丨数析学院_第15张图片
数据汇总丨数析学院_第16张图片
数据汇总丨数析学院_第17张图片

如果你想要无视数据集中存在的NA值,请设置参数na.rm=TRUE,如下所示:

数据汇总丨数析学院_第18张图片

扫描关注「数据工匠」微信号:

数据汇总丨数析学院_第19张图片

你可能感兴趣的:(数据汇总丨数析学院)