# R数据科学|3.6习题解答

## 问题一

• 一架航班 50% 的时间会提前 15 分钟，50% 的时间会延误 15 分钟。
• 一架航班总是会延误 10 分钟。
• 一架航班 50% 的时间会提前 30 分钟，50% 的时间会延误 30 分钟。
• 一架航班 99% 的时间会准时，1% 的时间会延误 2 个小时。哪一种更重要：到达延误还是出发延误？

## 问题二

### 解答

• 方法一
```not_cancelled %>%
count(dest)
```
• 方法二
```not_cancelled %>%
group_by(dest) %>%
summarise(n = length(dest))
```
• 方法三
```not_cancelled %>%
group_by(dest) %>%
summarise(n = n())
```

## 问题四

### 解答

```cancelled_per_day <-
flights %>%
mutate(cancelled = (is.na(arr_delay) | is.na(dep_delay))) %>%
group_by(year, month, day) %>%
summarise(
cancelled_num = sum(cancelled),
flights_num = n(),
)
ggplot(cancelled_per_day) +
geom_point(aes(x = flights_num, y = cancelled_num))
```

```cancelled_and_delays <-
flights %>%
mutate(cancelled = (is.na(arr_delay) | is.na(dep_delay))) %>%
group_by(year, month, day) %>%
summarise(
cancelled_prop = mean(cancelled),
avg_dep_delay = mean(dep_delay, na.rm = TRUE),
avg_arr_delay = mean(arr_delay, na.rm = TRUE)
) %>%
ungroup()
ggplot(cancelled_and_delays) +
geom_point(aes(x = avg_dep_delay, y = cancelled_prop))
```

## 问题五

### 解答

```1:3 + 1:10
flights %>%
group_by(carrier) %>%
summarise(arr_delay = mean(arr_delay, na.rm = TRUE)) %>%
arrange(desc(arr_delay))
```

```flights %>%
filter(!is.na(arr_delay)) %>%
group_by(origin, dest, carrier) %>%
summarise(
arr_delay = sum(arr_delay),
flights = n()
) %>%
group_by(origin, dest) %>%
mutate(
arr_delay_total = sum(arr_delay),
flights_total = sum(flights)
) %>%
ungroup() %>%
mutate(
arr_delay_others = (arr_delay_total - arr_delay) /
(flights_total - flights),
arr_delay_mean = arr_delay / flights,
arr_delay_diff = arr_delay_mean - arr_delay_others
) %>%
filter(is.finite(arr_delay_diff)) %>%
group_by(carrier) %>%
summarise(arr_delay_diff = mean(arr_delay_diff)) %>%
arrange(desc(arr_delay_diff))
```

## 问题六

count() 函数中的 sort 参数的作用是什么？何时应该使用这个参数？

0 条评论

• ### R数据科学|5.5.1 习题解答

前面对比了已取消航班和未取消航班的出发时间，使用学习到的知识对这个对比的可视化结果进行改善。

• ### R数据科学|5.3课后习题解答

研究 x、y 和 z 变量在 diamonds 数据集中的分布。你能发现什么？思考一下，对于一条钻石数据，如何确定表示长、宽和高的变量？

• ### R数据科学|3.4内容介绍及习题解答

通过基于变量名的操作，select()函数可以让你生成一个有用的变量子集。基本用法如下：

• ### R数据科学|3.7内容介绍及习题解答

虽然与summarize()函数结合起来使用是最有效的，但分组也可以与mutate()和filter()函数结合，以完成非常便捷的操作。示例如下：

• ### R数据科学|3.5内容介绍及习题解答

上节我们对选择现有的列进行了介绍与习题解答，现在对数据框添加新列进行介绍，这里使用mutate()函数，注意：mutate()总是将新列添加在数据集的最后。

• ### R数据科学|5.4内容介绍及习题解答

我们不建议使用这种方式，因为一个无效测量不代表所有测量都是无效的。此外，如果数据质量不高，若对每个变量都采取这种做法，那么你最后可能会发现数据已经所剩无几！

• ### R数据科学|3.6内容介绍

上节我们对选择现有的列和使用mutate添加新列做了介绍。现在对数据框使用summarize()进行分组摘要进行介绍。函数功能：summarize()可以将数据...

• ### R数据科学|5.5.2内容介绍及课后习题解答

要想对两个分类变量间的相关变动进行可视化表示，需要计算出每个变量组合中的观测数量。常用的两种方法有：

• ### R数据科学|3.2.4课后习题

《R数据科学》是一本很好的R学习教材，这里给出第三章3.2.4[1]习题解答，仅供参考。如有误，望指正。

• ### R数据科学|3.3课后习题

《R数据科学》是一本很好的R学习教材，小编学习过程中，把作业题做了一下，今天给出第三章3.3[1]习题解答，仅供参考。如有误，可留言。

• ### 开发 | Python赶超R语言，成为数据科学、机器学习平台中最热门语言？

AI科技评论消息，近日，kdnuggets做了一个关于数据科学、机器学习语言使用情况的问卷调查，他们分析了954个回答，得出结论——Python已经打败R语言，...

• ### Python赶超R语言，成为数据科学、机器学习平台中最热门的语言？

近日，kdnuggets 做了一个关于数据科学、机器学习语言使用情况的问卷调查，他们分析了 954 个回答，得出结论——Python 已经打败 R 语言，成为分...

• ### 如何用《玉树芝兰》入门数据科学？

链接起散落的文章，给《玉树芝兰》数据科学系列教程做个导读，帮你更为高效入门数据科学。

• ### 【数据科学】数据科学能回答什么样的问题？

机器学习是数据科学的发动机。每种机器学习方法（也称为算法）获取数据，反复咀嚼，输出结果。机器学习算法负责数据科学里最难以解释又最有趣的部分。数学的魔法在此发生。...

• ### 如何高效入门数据科学？

说明：本文是我数据科学系列教程的导读。因为微信公众号文章一经发布，便不能大篇幅编辑内容，后续发布的新教程无法加入进来。所以我只得选择不定期更新发布本文的最新版，...

• ### 学习数据分析，有哪些好书值得读？都在这里了

导读：这个年代里，“用数据说话”已经像是一种过气的口号。各行各业不同角色和身份的人们都已懂得“用数据说话”的重要性，甚至日常生活中也需要用数据看清事实，科学吃瓜...

• ### 2017年最全的数据科学学习计划（1）

导读 希望这篇学习路线图对你学习数据科学有帮助，需要说明的是国内本文中所说的数据科学家在国内一般称为数据分析师或者数据挖掘师，尽管称谓不同，但文章的路线图仍可...

• ### 定了！Python 团队将于 2020 年 1 月 1 日停止支持 Python 2.7

AI 研习社消息，日前，Python 初始设计者及主要架构师 Guido van Rossum 在 Python 官方邮件组表示，他们将于 2020 年 1 月...