千家信息网

如何利用aggregate对数据进行分组处理

发表于:2024-09-30 作者:千家信息网编辑
千家信息网最后更新 2024年09月30日,这篇文章主要介绍了如何利用aggregate对数据进行分组处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。利用aggregate对数
千家信息网最后更新 2024年09月30日如何利用aggregate对数据进行分组处理

这篇文章主要介绍了如何利用aggregate对数据进行分组处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

利用aggregate对数据进行分组处理,包括分组求和,分组取均值,最大值,中位数等等

aggregate这个函数的功能比较强大,它首先将数据进行分组(按行),然后对每一组数据进行函数统计,根据数据对象不同它有三种用法,分别应用于数据框(data.frame)、公式(formula)和时间序列(ts):

aggregate(x, by, FUN, ..., simplify = TRUE)aggregate(formula, data, FUN, ..., subset, na.action = na.omit)aggregate(x, nfrequency = 1, FUN = sum, ndeltat = 1, ts.eps = getOption("ts.eps"), ...)

其中针对数据的分组处理,例如有数据如下:

> dat  ID sample1 sample2 sample3 type1  A       1       2       2    12  A       2       4       9    23  A       4       3       1    34  C       5       5       8    15  C       6       9       7    26  C       3       1       3    37  D       9      10       9    18  D      11      18       1    2

按照type对数据进行分组求和,均值或者median等等,以sum为例:

> temp=aggregate(dat[,2:4],by=list(dat$type),FUN=sum)> temp  Group.1 sample1 sample2 sample31       1      15      17      192       2      19      31      173       3       7       4       4>

参数的第一个必须为数值型,所以去掉了第一列,对type不做操作,也去除,得到的数据Group.1即type类型
如果同时针对两种分组ID 和type进行,可以获得如下结果:

> temp=aggregate(dat[,2:4],by=list(dat$ID,dat$type),FUN=sum)> temp  Group.1 Group.2 sample1 sample2 sample31       A       1       1       2       22       C       1       5       5       83       D       1       9      10       94       A       2       2       4       95       C       2       6       9       76       D       2      11      18       17       A       3       4       3       18       C       3       3       1       3

mean、median、max等操作相同

感谢你能够认真阅读完这篇文章,希望小编分享的"如何利用aggregate对数据进行分组处理"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0