NYC Flights Assignment

Author

Martia Eyi

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)
data(flights)
data(airlines)

Summarize average arrival delay by airline

avg_delay <- flights %>%
  group_by(carrier) %>%
  summarize(avg_arr_delay = mean(arr_delay, na.rm = TRUE)) %>%
  left_join(airlines, by = "carrier")

Create bar plot of average arrival delay by airline

ggplot(avg_delay, aes(x = reorder(name, avg_arr_delay), y = avg_arr_delay, fill = avg_arr_delay > 0)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  labs(
    title = "Average Arrival Delay by Airline",
    x = "Airline",
    y = "Average Arrival Delay (minutes)",
    caption = "Data source: nycflights23"
  ) +
  scale_fill_manual(
    values = c("steelblue", "firebrick"),
    labels = c("On Time or Early", "Delayed")
  ) +
  theme_minimal() +
  theme(legend.title = element_blank())