R语言aggregate mongodb aggregate

aggregate函数
这个函数的功能比较强大,它首先将数据进行分组(按行),然后对每一组数据进行函数统计,最后把结果组合成一个比较nice的表格返回。根据数据对象不同它有三种用法,分别应用于数据框(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"), ...)

我们通过 mtcars 数据集的操作对这个函数进行简单了解。mtcars 是不同类型汽车道路测试的数据框类型数据:

> str(mtcars)
'data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...
先用attach函数把mtcars的列变量名称加入到变量搜索范围内,然后使用aggregate函数按cyl(汽缸数)进行分类计算平均值:

> attach(mtcars)
> aggregate(mtcars, by=list(cyl), FUN=mean)
Group.1 mpg cyl disp hp drat wt qsec vs am gear carb
1 4 26.66364 4 105.1364 82.63636 4.070909 2.285727 19.13727 0.9090909 0.7272727 4.090909 1.545455
2 6 19.74286 6 183.3143 122.28571 3.585714 3.117143 17.97714 0.5714286 0.4285714 3.857143 3.428571
3 8 15.10000 8 353.1000 209.21429 3.229286 3.999214 16.77214 0.0000000 0.1428571 3.285714 3.500000

by参数也可以包含多个类型的因子,得到的就是每个不同因子组合的统计结果:


> aggregate(mtcars, by=list(cyl, gear), FUN=mean)

Group.1 Group.2 mpg cyl disp hp drat wt qsec vs am gear carb
1 4 3 21.500 4 120.1000 97.0000 3.700000 2.465000 20.0100 1.0 0.00 3 1.000000
2 6 3 19.750 6 241.5000 107.5000 2.920000 3.337500 19.8300 1.0 0.00 3 1.000000
3 8 3 15.050 8 357.6167 194.1667 3.120833 4.104083 17.1425 0.0 0.00 3 3.083333
4 4 4 26.925 4 102.6250 76.0000 4.110000 2.378125 19.6125 1.0 0.75 4 1.500000
5 6 4 19.750 6 163.8000 116.5000 3.910000 3.093750 17.6700 0.5 0.50 4 4.000000
6 4 5 28.200 4 107.7000 102.0000 4.100000 1.826500 16.8000 0.5 1.00 5 2.000000
7 6 5 19.700 6 145.0000 175.0000 3.620000 2.770000 15.5000 0.0 1.00 5 6.000000
8 8 5 15.400 8 326.0000 299.5000 3.880000 3.370000 14.5500 0.0 1.00 5 6.000000

公式(formula)是一种特殊的R数据对象,在aggregate函数中使用公式参数可以对数据框的部分指标进行统计:


> aggregate(cbind(mpg,hp) ~ cyl+gear, FUN=mean)
cyl gear mpg hp
1 4 3 21.500 97.0000
2 6 3 19.750 107.5000
3 8 3 15.050 194.1667
4 4 4 26.925 76.0000
5 6 4 19.750 116.5000
6 4 5 28.200 102.0000
7 6 5 19.700 175.0000
R语言aggregate mongodb aggregate
8 8 5 15.400 299.5000

上面的公式 cbind(mpg,hp) ~ cyl+gear 表示使用 cyl 和 gear 的因子组合对cbind(mpg,hp) 数据进行操作。
aggregate在时间序列数据上的应用请参考R的函数说明文档。

  

爱华网本文地址 » http://www.413yy.cn/a/25101015/278678.html

更多阅读

不带R的月份不吃蚝 r语言 月份

好友W从岛上来温哥华过圣诞,也带来了亲自赶海收获的蚝。西方有句俗语说:“不带R的月份不吃蚝(Don't eat oystersunless there is an R in themonth)”,就是说,吃蚝的最佳月份是每年九月至来年四月(Sept

R语言模糊化图片(骰子作画的原理) r语言模糊匹配

看到阮一峰的一篇文章骰子作画的算法,http://www.ruanyifeng.com/blog/2011/11/dice_portrait.html很干兴趣,尝试用R实现了一下。原理:将原图按指定好的像素分块,每一个小块是一个矩阵,计算每一块矩阵某个色度的平均值。将每一个矩

七种必看的盘口语言 r语言七种武器 百度云

七种必看的盘口语言一、做收盘1、收盘前瞬间拉高——在全日收盘前半分钟(14:59)突然出现一笔大买单加几角甚至1元,几元把股价拉至很高位。[目的]:由于庄家(或主力,以下略)资金实力有限,节约资金而能使股价收盘收在较高位或突破具有

r语言:因子分析和聚类分析实例

r语言:因子分析和聚类分析实例-降维+样本聚类18 一月, 2013, oldlee11, R语言与数据挖掘, R语言同数据统计/分析, 因子分析, 聚类分析, , 0函数库?001002003004005006007008

声明:《R语言aggregate mongodb aggregate》为网友亮瞎你的眼分享!如侵犯到您的合法权益请联系我们删除