R语言:数据的分割-计算-整合(split-apply-aggregate)

Posted on 2018-09-11 09:19  moisiet  阅读(7930)  评论(0编辑  收藏  举报

当获取到原始数据时,我们通常的做法是对该数据进行分割成小片段,然后对各小片段进行计算统计,最后整合成最终的数据。这是统计学里数据处理的一般规律。

R语言为我们提供了相应的函数来分别处理这三个阶段任务。

分割:split()和subset()函数。

计算:apply(),lapply(),tapply(),sapply()

整合:aggregate()

注意几点:

1.向量,矩阵,数组的长度就是它元素的个数,用length获取;而数据集,列表的长度则是它变量的个数,注意二者的不同。

实际上,向量和矩阵是特殊的数组,而数据集是特殊的列表。才表现出上述形式来。

2.批处理函数apply簇:

作用目标在每个元素上应用在子集合上应用
array apply tapply
list lapply(...) by

apply和lapply作用在元素上,而tapply和by作用在子集合上。

二,实际用法:

tapply

tapply(array, indices, margin, FUN=NULL, ...)

indices中的值分组,把相同值对应下标的array中的元素形成一个集合,应用到FUN

by

by(dataframe, INDICES, FUN, ..., simplify=TRUE)

by是针对数据集进行的,功能同taaply函数,INDICES的长度等于每列变量的长度,因此它是将数据集按照行进行分割。

lapply

lapply(list, FUN, ...)
list上按照变量分组分别调用FUN,相当于apply。可以用于dataframe上,因为dataframe是一种特殊形式的list。

具体使用方法参考:R语言apply函数簇使用方法