博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分组计算描述性统计量
阅读量:6927 次
发布时间:2019-06-27

本文共 3754 字,大约阅读时间需要 12 分钟。

hot3.png

  • 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"), ...)

> 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)The following objects are masked from mtcars (pos = 3):    am, carb, cyl, disp, drat, gear, hp, mpg, qsec, vs, wt> aggregate(mtcars,by=list(cyl),FUN=mean)#按cyl(汽缸数)进行分类,计算每类均值  Group.1      mpg cyl     disp        hp     drat       wt     qsec        vs1       4 26.66364   4 105.1364  82.63636 4.070909 2.285727 19.13727 0.90909092       6 19.74286   6 183.3143 122.28571 3.585714 3.117143 17.97714 0.57142863       8 15.10000   8 353.1000 209.21429 3.229286 3.999214 16.77214 0.0000000         am     gear     carb1 0.7272727 4.090909 1.5454552 0.4285714 3.857143 3.4285713 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   am1       4       3 21.500   4 120.1000  97.0000 3.700000 2.465000 20.0100 1.0 0.002       6       3 19.750   6 241.5000 107.5000 2.920000 3.337500 19.8300 1.0 0.003       8       3 15.050   8 357.6167 194.1667 3.120833 4.104083 17.1425 0.0 0.004       4       4 26.925   4 102.6250  76.0000 4.110000 2.378125 19.6125 1.0 0.755       6       4 19.750   6 163.8000 116.5000 3.910000 3.093750 17.6700 0.5 0.506       4       5 28.200   4 107.7000 102.0000 4.100000 1.826500 16.8000 0.5 1.007       6       5 19.700   6 145.0000 175.0000 3.620000 2.770000 15.5000 0.0 1.008       8       5 15.400   8 326.0000 299.5000 3.880000 3.370000 14.5500 0.0 1.00  gear     carb1    3 1.0000002    3 1.0000003    3 3.0833334    4 1.5000005    4 4.0000006    5 2.0000007    5 6.0000008    5 6.000000#cbind(mpg,hp) ~ cyl+gear 表示使用 cyl 和 gear 的因子组合对 cbind(mpg,hp) 数据进行操作> aggregate(cbind(mpg,hp) ~ cyl+gear, FUN=mean)  cyl gear    mpg       hp1   4    3 21.500  97.00002   6    3 19.750 107.50003   8    3 15.050 194.16674   4    4 26.925  76.00005   6    4 19.750 116.50006   4    5 28.200 102.00007   6    5 19.700 175.00008   8    5 15.400 299.5000
  •  by()

aggregate()仅允许在每次调用时使用平均数、标准差这样的单返回值函数。无法一次返回若干统计量,要完成这任务可以使用 by() 函数

by(data, INDICES ,FUN)

data:一个数据框或矩阵

INDICES:是一个因子或因子组成的列表,定义了分组

FUN:是任意函数

  • 分组计算的扩展

doBy包中的summary By(),其格式为

summaryBy(formula,data=frame,FUN=function)

formula:接收如下格式

                var1+var2+var3+...+varN~groupvar1+groupvar2+...+groupvarN,在 ~ 左侧的变量是需要分析的数值型变量,而右侧的变量是类别型的分组变量

function:可以分为内建或用户自编的R函数

例:

> library(doBy)Warning message:程辑包‘doBy’是用R版本3.4.1 来建造的 > summaryBy(mpg+hp+wt~am, data=mtcars, FUN=mystats)  am mpg.n mpg.mean mpg.stdev   mpg.skew mpg.kurtosis hp.n  hp.mean hp.stdev     hp.skew hp.kurtosis wt.n  wt.mean  wt.stdev1  0    19 17.14737  3.833966 0.01395038   -0.8031783   19 160.2632 53.90820 -0.01422519  -1.2096973   19 3.768895 0.77740012  1    13 24.39231  6.166504 0.05256118   -1.4553520   13 126.8462 84.06232  1.35988586   0.5634635   13 2.411000 0.6169816    wt.skew wt.kurtosis1 0.9759294   0.14156762 0.2103128  -1.1737358

 

转载于:https://my.oschina.net/u/1785519/blog/1563105

你可能感兴趣的文章
Java基础学习总结(20)——基础语法
查看>>
大型网站技术架构(四)网站的高性能架构
查看>>
jquery 刮奖插件
查看>>
es6--export default
查看>>
Java JNI 调用C++ API及中文编码问题
查看>>
Springmvc的开发流程--附带实例
查看>>
Java23中设计模式(Design Patterns)详解
查看>>
Java基础学习总结(3)——抽象类
查看>>
win7还未用熟 已经win10系统的身影了
查看>>
c#中的internal关键字
查看>>
Redis未授权访问之反弹shell
查看>>
C#中使用split分割字符串的几种方法
查看>>
使用Nginx如何配置Tomcat访问日志记录真实IP
查看>>
我的友情链接
查看>>
利用Zabbix的自动注册功能添加局域网中的服务器进行监控
查看>>
Bugly接入指南
查看>>
我的友情链接
查看>>
GCD基本使用
查看>>
More About SYS_AUTO_SQL_TUNING_TASK
查看>>
我的友情链接
查看>>