这篇文章主要介绍了如何利用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 type 1 A 1 2 2 1 2 A 2 4 9 2 3 A 4 3 1 3 4 C 5 5 8 1 5 C 6 9 7 2 6 C 3 1 3 3 7 D 9 10 9 1 8 D 11 18 1 2
按照type对数据进行分组求和,均值或者median等等,以sum为例:
> temp=aggregate(dat[,2:4],by=list(dat$type),FUN=sum) > temp Group.1 sample1 sample2 sample3 1 1 15 17 19 2 2 19 31 17 3 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 sample3 1 A 1 1 2 2 2 C 1 5 5 8 3 D 1 9 10 9 4 A 2 2 4 9 5 C 2 6 9 7 6 D 2 11 18 1 7 A 3 4 3 1 8 C 3 3 1 3
mean、median、max等操作相同
感谢你能够认真阅读完这篇文章,希望小编分享的“如何利用aggregate对数据进行分组处理”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。