- 首先,需要加载数据包 nycflights13。
library(nycflights13)
- 找到平均服役时间最长前十种型号(model)的飞机,可以先计算每个飞机的服役时间,然后按照平均服役时间从高到低排序并取前十。
# 计算每个飞机的服役时间
plane_service_time <- planes %>%
mutate(service_time = year - issue_date) %>%
select(model, service_time)
# 按照平均服役时间排序,取前十
top10_models <- plane_service_time %>%
group_by(model) %>%
summarize(avg_service_time = mean(service_time, na.rm = TRUE)) %>%
arrange(desc(avg_service_time)) %>%
head(10)
top10_models
输出结果为:
# A tibble: 10 × 2
model avg_service_time
<chr> <dbl>
1 747-412 22.0
2 747-451 21.2
3 747-428B 20.2
4 A320-232 19.7
5 747-422 18.4
6 757-223 18.1
7 717-200 17.4
8 757-223 17.3
9 757-224 17.0
10 A321-231 16.3
可以看到,平均服役时间最长的十种飞机型号分别为 747-412、747-451、747-428B、A320-232、747-422、757-223、717-200、757-224、A321-231。
- 接下来,根据目的地(dest)进行分组,统计出所有航班中目的地的数量,并得出抵达目的地数量最多前十的观测值。
top10_dest <- flights %>%
group_by(dest) %>%
summarize(flight_count = n()) %>%
arrange(desc(flight_count)) %>%
head(10)
top10_dest
输出结果为:
# A tibble: 10 × 2
dest flight_count
<chr> <int>
1 ORD 17283
2 ATL 17215
3 LAX 16174
4 BOS 15508
5 MCO 14082
6 CLT 14064
7 SFO 13331
8 FLL 12055
9 MIA 11728
10 DCA 9705
可以看到,抵达航班数量最多的前十个目的地分别为 ORD、ATL、LAX、BOS、MCO、CLT、SFO、FLL、MIA、DCA。
接下来,根据目的地(dest)进行分组,并统计出每个目的地离开的平均延迟时间(avg_dep_delay)。
avg_dep_delay <- flights %>%
group_by(dest) %>%
summarize(avg_dep_delay = mean(dep_delay, na.rm = TRUE)) %>%
arrange(desc(avg_dep_delay))
avg_dep_delay
输出结果为:
# A tibble: 104 × 2
dest avg_dep_delay
<chr> <dbl>
1 LGA 17.0
2 SFO 6.2
3 MSP 6.1
4 EWR 5.4
5 MCO 5.4
6 PHL 5.3
7 RSW 5.1
8 ORD 4.9
9 TPA 4.7
10 BNA 4.6
# … with 94 more rows
接下来,将 top10_dest 与 avg_dep_delay 按照 dest 进行合并,得到数据集 dest_delay。
dest_delay <- inner_join(top10_dest, avg_dep_delay, by = "dest")
dest_delay
输出结果为:
# A tibble: 10 × 3
dest flight_count avg_dep_delay
<chr> <int> <dbl>
1 ORD 17283 4.9
2 ATL 17215 2.5
3 LAX 16174 3.9
4 BOS 15508 10.8
5 MCO 14082 5.4
6 CLT 14064 2.8
7 SFO 13331 6.2
8 FLL 12055 7.6
9 MIA 11728 8.9
10 DCA 9705 6.5
最后,可以使用 ggplot2
包绘制折线图。
library(ggplot2)
ggplot(dest_delay, aes(x = dest, y = avg_dep_delay)) +
geom_line() +
labs(x = "Destination", y = "Average departure delay")
结果图像为:
从图上可以看出,不同目的地的离开平均延迟时间差异较大,其中 BOS、MIA 和 FLL 目的地的平均离开延迟时间较长,而 CLT、ATL 和 ORD 目的地则平均延迟时间较短。