已知数据集 nycfilghts13。
(1)找出 flights 的 tailnum 在 planes 中没有匹配的所有记录,总共有
多少架飞机没有匹配记录?
(2)找出(
1)中的 tailnum 所属的航空公司,在此基础上计算出各航空公司
所拥有的 tailnum 数量。
(3)展示出(2)中的航空公司的全名。
(4)将flights和planes进行连接。
(5)在(1)基础上创建一个新变量age表示飞机的寿命,并去除age为NA
的数据。
(6)查看有多少架飞机的寿命大于25年,将寿命超过25年的飞机age统一
改为25L,其余飞机保持不变。
(7)在(3)基础上计算各飞机寿命的平均出发延误时间,并绘制出散点图。
(1) 找出 flights 的 tailnum 在 planes 中没有匹配的所有记录,总共有多少架飞机没有匹配记录?
# 导入数据集
library(nycflights13)
# 找出 flights 的 tailnum 在 planes 中没有匹配的所有记录
no_match <- subset(flights, !(tailnum %in% planes$tailnum))
# 总共有多少架飞机没有匹配记录
nrow(unique(no_match$tailnum))
(2) 找出(1)中的 tailnum 所属的航空公司,在此基础上计算出各航空公司所拥有的 tailnum 数量。
# 找出 tailnum 所属的航空公司
library(dplyr)
tailnum_airline <- planes %>% select(tailnum, carrier)
# 计算各航空公司所拥有的 tailnum 数量
tailnum_count <- tailnum_airline %>% group_by(carrier) %>% summarise(count = n_distinct(tailnum))
(3) 展示出(2)中的航空公司的全名。
# 导入 airlines 数据集
airlines <- data.frame(carrier = unique(tailnum_airline$carrier), name = c("Delta Air Lines Inc.", "United Air Lines Inc.", "American Airlines Inc.", "Frontier Airlines Inc.", "Hawaiian Airlines Inc.", "Alaska Airlines Inc.", "JetBlue Airways", "Spirit Air Lines", "Southwest Airlines Co.", "US Airways Inc.", "Virgin America"))
# 合并数据集
tailnum_count <- merge(tailnum_count, airlines, by = "carrier")
# 展示航空公司的全名
tailnum_count$name
(4) 将 flights 和 planes 进行连接。
# 将 flights 和 planes 进行连接
library(dplyr)
flights_planes <- inner_join(flights, planes, by = "tailnum")
(5) 在(1)基础上创建一个新变量 age 表示飞机的寿命,并去除 age 为 NA 的数据。
# 创建一个新变量 age 表示飞机的寿命
flights_planes$age <- flights_planes$year - flights_planes$year[1]
# 去除 age 为 NA 的数据
flights_planes <- na.omit(flights_planes)
(6) 查看有多少架飞机的寿命大于 25 年,将寿命超过 25 年的飞机 age 统一改为 25L,其余飞机保持不变。
# 查看有多少架飞机的寿命大于 25 年
sum(flights_planes$age > 25)
# 将寿命超过 25 年的飞机 age 统一改为 25L,其余飞机保持不变
flights_planes$age[flights_planes$age > 25] <- 25L
(7) 在(3)基础上计算各飞机寿命的平均出发延误时间,并绘制出散点图。
# 计算各飞机寿命的平均出发延误时间
library(ggplot2)
delay_age <- flights_planes %>% group_by(age) %>% summarise(avg_delay = mean(dep_delay, na.rm = TRUE))
# 绘制散点图
ggplot(delay_age, aes(x = age, y = avg_delay)) + geom_point() + xlab("Age") + ylab("Average Departure Delay")
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!