已知数据集 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)基础上计算各飞机寿命的平均出发延误时间,并绘制出散点图。
R语言中关于连接类问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-sinJack 2023-04-21 15:37关注
(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")
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 基于单片机数字电压表电路组成及框图
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line