美文网首页
20.mutate()和filter()与group_by()的

20.mutate()和filter()与group_by()的

作者: 心惊梦醒 | 来源:发表于2021-08-03 22:20 被阅读0次

【上一篇:19.关于summarise()之逐步汇总和ungrouping】
【下一篇:21.关于Exploratory Data Analysis之一】

    group_by()和summarise()函数一起使用是最有用的,但跟mutate()、filter()一起用有时候也很方便。

flights_sml <- select(flights, 
  year:day, 
  ends_with("delay"), 
  distance, 
  air_time
)
# 每天的航班,按到达延误时间降序排列,选出最延误的9趟航班
> flights_sml %>% 
+     group_by(year, month, day) %>%
+     filter(rank(desc(arr_delay)) < 10)
# A tibble: 3,306 x 7
# Groups:   year, month, day [365]
    year month   day dep_delay arr_delay distance air_time
   <int> <int> <int>     <dbl>     <dbl>    <dbl>    <dbl>
 1  2013     1     1       853       851      184       41
 2  2013     1     1       290       338     1134      213
 3  2013     1     1       260       263      266       46
 4  2013     1     1       157       174      213       60
 5  2013     1     1       216       222      708      121
 6  2013     1     1       255       250      589      115
 7  2013     1     1       285       246     1085      146
 8  2013     1     1       192       191      199       44
 9  2013     1     1       379       456     1092      222
10  2013     1     2       224       207      550       94
# ... with 3,296 more rows

#找出以dest分组的,每组中航班数量大于365的
popular_dests <- flights %>% 
  group_by(dest) %>% 
  filter(n() > 365)

#到达延误的航班中,计算每趟航班的延误时间占总体延误时间的比例,打印年月日、目的地到达延误时间与比例
popular_dests %>% 
  filter(arr_delay > 0) %>% 
  mutate(prop_delay = arr_delay / sum(arr_delay)) %>% 
  select(year:day, dest, arr_delay, prop_delay)

    在grouped filter和grouped mutated中使用最自然的函数叫做窗口函数(用来做summarise的叫做summary functions),用vignette("window-functions")查看窗口函数的帮助。
    练习题
    1.回顾有用的mutate和filter函数,看一下跟group_by()一起使用的时候如何更改。
    2.那架飞机有最糟糕的准点率
    3.如果你想尽可能地避免延误,你应该在一天中的什么时间坐飞机呢?
    4.对于每个目的地,计算延迟总分钟数。对于每个航班,计算总延误占其目的地的比例。
    5.延误通常与时间有关:即使导致最初延误的问题得到解决,较晚的航班也会被延误,以便让较早的航班离开。使用lag(),探究航班延误与前一航班延误之间的关系。
    6.看看每个目的地。你能找到速度可疑的航班吗?(例如,表示潜在的数据输入错误的航班)。计算相对于到该目的地的最短航班的飞行时间。哪些航班在空中延误最严重?
    7.找出所有至少由两家航空公司运营的目的地。利用这些信息对运营商进行排名。
    8.对于每架飞机,计算第一次延误超过1小时之前的航班数。

【上一篇:19.关于summarise()之逐步汇总和ungrouping】
【下一篇:21.关于Exploratory Data Analysis之一】

相关文章

网友评论

      本文标题:20.mutate()和filter()与group_by()的

      本文链接:https://www.haomeiwen.com/subject/gwrlvltx.html