NYC flight Assignment

Author

Ellis Oppong

Load libraries

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.2     ✔ tibble    3.2.1
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
✔ purrr     1.0.4     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(nycflights23)

Load the datasets

data(flights)
data(airlines)

Preparing data by calculating average departure delay per airlines.

avg_dep_delay <- flights %>%
  group_by(carrier) %>%
  summarize(avg_delay = mean(dep_delay, na.rm = TRUE)) %>%
  arrange(desc(avg_delay)) %>%
  left_join(airlines, by = "carrier")

Create bar graph

ggplot(avg_dep_delay, aes(x = reorder(name, avg_delay), y = avg_delay, fill = avg_delay > 0)) +
  geom_col() +
  coord_flip() +
  labs(
    title = "Average Departure Delay by Airline",
    x = "Airline",
    y = "Average Departure Delay (minutes)",
    fill = "Delay Status",
    caption = "Source: nycflights23 package "
  ) +
  scale_fill_manual(
    values = c("TRUE" = "firebrick", "FALSE" = "steelblue"),
    labels = c("Delayed", "On Time or Early")
  ) +
  theme_minimal()

# Assisted by chatgpt with coding.