2201_75919893 2023-04-21 15:15 采纳率: 100%
浏览 10
已结题

R语言中关于连接类问题

已知数据集 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)基础上计算各飞机寿命的平均出发延误时间,并绘制出散点图。

  • 写回答

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")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月21日
  • 创建了问题 4月21日

悬赏问题

  • ¥15 设计一个温度闭环控制系统
  • ¥100 关于加载卡的问题有能知道这个要怎么处理吗?
  • ¥100 rtmpose姿态评估
  • ¥15 java 通过反射找路径下的类,打包后就找不到
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,
  • ¥15 centos7系统下abinit安装时make出错
  • ¥15 hbuildex运行微信小程序报错
  • ¥15 关于#python#的问题:我知道这个问题对你们来说肯定so easy
  • ¥15 wpf datagrid如何实现多层表头