详解《R数据科学》--插播dplyr习题

P42页习题3.2.4,对应英文版5.2.4

1.找出满足以下条件的所有航班

a.到达时间延误两小时及以上

?flights

《详解《R数据科学》--插播dplyr习题》

从帮助文档得知,到达时间延误是arr_delay,单位是分钟。

filter(flights, arr_delay >= 120)

b.飞往休斯顿(IAH 或 HOU机场)

根据目的地(destination)即表中的dest筛选

filter(flights, dest =="IAH"| dest =="HOU")
filter(flights, dest %in% c("IAH", "HOU"))#简单写法

c.由 United, American, Delta(航空公司)运营

《详解《R数据科学》--插播dplyr习题》

由帮助信息得知,航空公司与缩写的对应关系在arilines里。

View(airlines)

《详解《R数据科学》--插播dplyr习题》

filter(flights,carrier %in% c("AA","DL","UA"))

d.7-9月出发的航班

filter(flights, month >= 7, month <= 9)
filter(flights, month >= 7&month <= 9)
filter(flights, month %in% c(7:9))
filter(flights, month %in% c(7,8,9))

e.到达延误两小时及以上,但出发没有延误

filter(flights, arr_delay>=60&dep_delay == 0)
filter(flights, arr_delay>=60,dep_delay == 0)

f.起飞延误至少1h,但飞行过程弥补回30min的航班

小洁分析:如果飞行时间完全按照计划的话,到达延误和起飞延误时间应该是一样的。所以后半句话的意思是到达延误时间比起飞延误时间小30min。
但我疑虑的是正好弥回30min还是30min以上呢?

查阅了标准答案是:

filter(flights,dep_delay>=60,arr_delay<=dep_delay-30)

根据答案判断,题目的应该是表达飞行过程弥补回30min以上。如果按照正好30min算的话应该是

filter(flights,dep_delay>=60,arr_delay==dep_delay-30)

g.起飞时间在0-6点之间。(包括0和6)

小洁分析:查了一下起飞时间的格式是HHMM或HMM,那0-6点就是<=600。问题是0点会表示为000还是2400呢,试一下:

《详解《R数据科学》--插播dplyr习题》

因此零点的表示应该是2400

filter(flights, dep_time <= 600 | dep_time == 2400)

2.between函数

between(x, left, right) 等价于x >= left & x <= right
因此上一题的d可使用:

filter(flights, between(month, 7, 9))

3.有多少航班缺失了dep_time?其他列的缺失情况如何?这样的行表示什么情况?

count(flights, is.na(dep_time))
filter(flights, is.na(dep_time))

没有起飞时间、也没有到达时间,只有计划的数据,所以这些航班是被取消掉了~

4.NA奇怪的逻辑和规律

(1)Why is NA ^ 0 not missing?

任何数的零次方都是1

(2)Why is NA | TRUE not missing? Why is FALSE & NA not missing?

  • 任何数|TRUE都是TURE
  • 任何数&FALSE都是FALSE
    ps:NA | FALSE 和 NA & TRUE 都是NA。NA在逻辑计算中表示:不知道TRUE还是FALSE。

(3)任何数x0都是0,为什么NAx0却等于NA?

↓此处是我偷窥了答案。
因为x∞和 x−∞ 没有被定义。R将没有被定义的结果返回为NaN,也就是 not a number的缩写。

Inf * 0 #inf是正无穷
#> [1] NaN
-Inf * 0 #-inf是负无穷
#> [1] NaN

《详解《R数据科学》--插播dplyr习题》 微信公众号生信星球同步更新我的文章

友情链接:
生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
B站链接:https://m.bilibili.com/space/338686099
YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists
生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA
学徒培养:https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw
资料大全:https://mp.weixin.qq.com/s/QcES9u1vYh-l6LMXPgJIlA

    原文作者:小洁忘了怎么分身
    原文地址: https://www.jianshu.com/p/595fa09463bd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞