R语言ETL系列:汇总(summarise)

640?wx_fmt=png

作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。

邮箱:[email protected]


本章讲解如何使用summarise函数完成数据的汇总。在开讲之前,我们需要理解,什么叫做汇总。举个例子,如果我们现在对学校的学生身高进行了测量,我们需要得到学生的平均身高,那么我们把所有学生的身高加起来,除以学生的数量,得到身高平均值,这就完成了一个汇总计算。汇总计算的方式多种多样,比如我们要得到最高的身高是多少,最低的身高是多少,身高是中位数是多少,这些都是汇总计算。
在数据表中,数据的汇总的实质就是:我们根据一列数据(本质来说是一个向量),得到一个值,来反映总体在这个属性上的特征。本章会用到R语言自带cars数据集,下面我们先加载需要的包,并把cars转化为tibble,存放在cars1变量中。它只包含两列数据,第一列是汽车的即时速度,第二列是这个速度下要停止下来会继续跑多远。


 1library(tidyverse)
2cars %>% as_tibble() -> cars1
3cars1
4## # A tibble: 50 x 2
5##    speed  dist
6##    <dbl> <dbl>
7##  1     4     2
8##  2     4    10
9##  3     7     4
10##  4     7    22
11##  5     8    16
12##  6     9    10
13##  7    10    18
14##  8    10    26
15##  9    10    34
16## 10    11    17
17## # ... with 40 more rows


汇总基本范式

均值和中位数代表了数据的一般水平,是重要的衡量指标。下面我们看看如何汇总测试的平均值和中位数。

 1#平均速度
2cars1 %>%
3  summarise(mean(speed))
4## # A tibble: 1 x 1
5##   `mean(speed)`
6##           <dbl>
7## 1          15.4
8#速度的中位数
9cars1 %>% 
10  summarise(median(speed))
11## # A tibble: 1 x 1
12##   `median(speed)`
13##             <dbl>
14## 1              15


SQL代码分别为:

<SQL> SELECT AVG(`speed`) AS `mean(speed)`
FROM `cars1`

<SQL> SELECT MEDIAN(`speed`) AS `median(speed)`
FROM `cars1`

注意,我们这里没有给最后的结果命名,因此结果中默认原来的值为命名,也就是说mean(speed)成为了列的名称,事实上我们可以通过赋值来改变它,例子如下:

1cars1 %>%
2  summarise(speed_avg = mean(speed))
3#
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值