2201_75919893 2023-03-27 10:55 采纳率: 100%
浏览 30
已结题

R语言练习题,计算准点率和画图

利用以下代码创建 not_cancelled 数据集,在该数据集基础上完成以下各
题。
not_cancelled <- flights %>%
filter(!is.na(dep_delay), !is.na(arr_delay))

1)找出各个航空公司出发正延误时间大于一小时的航班个数,哪个航空公司
的延误情况最严重?
(2)找出出发准点率最高的前 10 家航空公司。(出发准点率即 dep_delay=0
的占比)
(3)在 not_cancelled 中筛选出题(2)的 10 家航空公司对应的行(提
示:可用 filter(carrier %in% 指定向量)进行筛选),用 boxplot 画出10 家航空公司和 dep_delay 的箱线图,要求图中的公司按照 dep_delay 的
中位数排序,y 轴限制在-50 到 500 之间。

4)计算出各飞机的出发准点率和飞行次数,筛选出出发准点率不等于 1 且
飞行次数大于 50 的飞机。
(5)在题(
4)基础上做出飞行次数和出发准点率的散点图,看看有什么规
律。

  • 写回答

2条回答 默认 最新

  • Bony- 2023-03-27 13:54
    关注

    找出各个航空公司出发正延误时间大于一小时的航班个数,哪个航空公司的延误情况最严重?

    library(dplyr)
    
    not_cancelled %>%
      filter(dep_delay > 60) %>%
      group_by(carrier) %>%
      summarise(num_flights = n()) %>%
      arrange(desc(num_flights))
    

    找出出发准点率最高的前 10 家航空公司。(出发准点率即 dep_delay=0的占比)

    not_cancelled %>%
      group_by(carrier) %>%
      summarise(num_flights = n(), num_ontime = sum(dep_delay == 0), ontime_rate = num_ontime / num_flights) %>%
      arrange(desc(ontime_rate)) %>%
      head(10)
    

    在 not_cancelled 中筛选出题(2)的 10 家航空公司对应的行,用 boxplot 画出10 家航空公司和 dep_delay 的箱线图,要求图中的公司按照 dep_delay 的中位数排序,y 轴限制在-50 到 500 之间。

    library(ggplot2)
    
    top_10_airlines <- not_cancelled %>%
      group_by(carrier) %>%
      summarise(num_flights = n(), num_ontime = sum(dep_delay == 0), ontime_rate = num_ontime / num_flights) %>%
      arrange(desc(ontime_rate)) %>%
      head(10) %>%
      select(carrier)
    
    not_cancelled_top_10 <- not_cancelled %>%
      filter(carrier %in% top_10_airlines$carrier)
    
    not_cancelled_top_10 %>%
      mutate(carrier = factor(carrier, levels = top_10_airlines$carrier[order(median(dep_delay))])) %>%
      ggplot(aes(x = carrier, y = dep_delay)) +
      geom_boxplot() +
      coord_cartesian(ylim = c(-50, 500)) +
      labs(title = "Dep Delay by Top 10 Airlines", x = "Airline", y = "Dep Delay")
    
    

    计算出各飞机的出发准点率和飞行次数,筛选出出发准点率不等于 1 且飞行次数大于 50 的飞机。

    not_cancelled %>%
      group_by(tailnum) %>%
      summarise(num_flights = n(), num_ontime = sum(dep_delay == 0), ontime_rate = num_ontime / num_flights) %>%
      filter(ontime_rate != 1 & num_flights > 50)
    
    

    在题(4)基础上做出飞行次数和出发准点率的散点图,看看有什么规律。

    not_cancelled %>%
      group_by(tailnum) %>%
      summarise(num_flights = n(), num_ontime = sum(dep_delay == 0), ontime_rate = num_ontime / num_flights) %>%
      filter(ontime_rate != 1 & num_flights > 50) %>%
      ggplot(aes(x = num_flights, y = ontime_rate)) +
      geom_point() +
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 运筹学对偶单纯行法构造扩充问题
  • ¥20 XP系统的老电脑一开机就提示找不到rundll.exe,付费求解
  • ¥15 milvus查询出来的score怎么转换成0-1之间的相似性
  • ¥15 多ip服务器站群如何搭建l2tp服务器
  • ¥15 lvgl V9移植到linux开发板
  • ¥15 VB.net中在窗体中创建一个button控件来关闭窗体,但是提示错误,我该怎么办
  • ¥15 网上下载好的程序但是arduinoIDE编程报错,运行不了,哪里出错了,能具体给改一下吗
  • ¥15 Sharepoint JS开发 付费技术指导
  • ¥15 输入程序运行仿真后,烟雾值不实时检测,变成固定值
  • ¥20 数据排序,可选择排序方向