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 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号