R语言-数据整形之aggregate函数

R语言的aggregate函数用于按行分组并进行统计计算,适用于数据框、公式和时间序列。文章通过Example1至Example4展示了如何使用该函数,包括对mtcars数据集的平均值计算,以及如何处理NA值。
摘要由CSDN通过智能技术生成

R语言中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"), ...)

语法

    aggregate(x, ...)
     
    ## S3 method for class 'default':
    aggregate((x, ...))
    
    ## S3 method for class 'data.frame':
    aggregate((x, by, FUN, ..., simplify = TRUE))
    
    ## S3 method for class 'formula':
    aggregate((formula, data, FUN, ...,
              subset, na.action = na.omit))
    
    ## S3 method for class 'ts':
    aggregate((x, nfrequency = 1, FUN = sum, ndeltat = 1,
              ts.eps = getOption("ts.eps"), ...))

    ###细节查看  ?aggregate

Example1

  我们通过 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
    
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值