R数据科学-第2章使用dplyr进行数据转换-2

一、下面是最后一个核心函数summarize,可以将数据进行分组摘要。

1.简介

通常与group_by函数一起使用:

下面计算了每日平均延误时间:

> by_day<-group_by(flights,year,month,day)
> summarize(by_day,delay=mean(dep_delay,na.rm=TRUE))

# A tibble: 365 x 4
# Groups:   year, month [12]
    year month   day delay
   <int> <int> <int> <dbl>
 1  2013     1     1 11.5 
 2  2013     1     2 13.9 
 3  2013     1     3 11.0 
 4  2013     1     4  8.95
 5  2013     1     5  5.73
 6  2013     1     6  7.15
 7  2013     1     7  5.42
 8  2013     1     8  2.55
 9  2013     1     9  2.28
10  2013     1    10  2.84
# ... with 355 more rows

2.管道

假设我们想要了解每个目的地的距离和平均延误时间的关系。完成数据准备需要以下三步:

1)按照目的地对航班进行分组。

2)进行摘要统计,计算距离、平均延误时间和航班数量。

3)通过筛选除去噪声点和异常值。

我们可以使用管道完成上述一系列过程而避免对中间数据框命名。上述过程可以抽象为:分组,摘要统计,筛选。

管道的工作过程可以抽象为:x %>% f(y) %>% g(z)会转变为 g(f(x,y))

> delays<-flights %>% group_by(dest) %>% summarize(count=n(),dist=mean(distance,na.rm=TRUE),delay=mean(arr_delay,na.rm=TRUE)) %>% filter(count>20)
>head(delays)

# A tibble: 6 x 4
  dest  count  dist delay
  <chr> <int> <dbl> <dbl>
1 ABQ     254 1826   4.38
2 ACK     265  199   4.85
3 ALB     439  143  14.4 
4 ATL   17215  757. 11.3 
5 AUS    2439 1514.  6.02
6 AVL     275  584.  8.00

3.缺失值

除了使用每个函数的na.rm=TRUE来去掉缺失值,还可以先去除有缺失值的航班:

not_cancelled<-flights %>% filter(!is.na(dep_delay),!is.na(arr_delay))

4.计数

聚合操作中包含一个计数(n())或者非缺失值的计数(sum(!is.na()))是很好

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值