knitr::opts_chunk$set(echo = TRUE, warning = FALSE)
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.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── 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
This report analyzes passenger traffic at Hartsfield-Jackson Atlanta International Airport (ATL) between 2019 and 2024. We use annual passenger data (in millions) to compute summary statistics, growth rates, and visualize trends over time.
##Data Input
We first create a small dataset in R with the total passenger numbers (in millions) for each year, based on published statistics.
# Example data: year vs total passengers (in millions)
atl_data <- tibble(
year = c(2019, 2020, 2021, 2022, 2023, 2024),
passengers = c(110.53, 42.92, 75.70, 93.70, 104.65, 108.07) # values from web sources
)
atl_data
## # A tibble: 6 × 2
## year passengers
## <dbl> <dbl>
## 1 2019 111.
## 2 2020 42.9
## 3 2021 75.7
## 4 2022 93.7
## 5 2023 105.
## 6 2024 108.
Here we calculate the mean, median, variance, and standard deviation of annual passenger totals. This helps us understand the central tendency and variability in ATL’s passenger traffic over time.
summary(atl_data$passengers)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 42.92 80.20 99.17 89.26 107.22 110.53
mean_passengers <- mean(atl_data$passengers)
median_passengers <- median(atl_data$passengers)
var_passengers <- var(atl_data$passengers)
sd_passengers <- sd(atl_data$passengers)
cat("Mean passengers (millions):", round(mean_passengers,2), "\n")
## Mean passengers (millions): 89.26
cat("Median passengers (millions):", median_passengers, "\n")
## Median passengers (millions): 99.175
cat("Variance:", round(var_passengers,2), "\n")
## Variance: 678.81
cat("Standard Deviation:", round(sd_passengers,2))
## Standard Deviation: 26.05
Here we calculate the mean, median, variance, and standard deviation of annual passenger totals. This helps us understand the central tendency and variability in ATL’s passenger traffic over time.
summary(atl_data$passengers)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 42.92 80.20 99.17 89.26 107.22 110.53
mean_passengers <- mean(atl_data$passengers)
sd_passengers <- sd(atl_data$passengers)
growth_rates <- atl_data %>%
arrange(year) %>%
mutate(lag_pass = lag(passengers),
growth = (passengers - lag_pass)/lag_pass * 100) %>%
filter(!is.na(growth))
growth_rates
## # A tibble: 5 × 4
## year passengers lag_pass growth
## <dbl> <dbl> <dbl> <dbl>
## 1 2020 42.9 111. -61.2
## 2 2021 75.7 42.9 76.4
## 3 2022 93.7 75.7 23.8
## 4 2023 105. 93.7 11.7
## 5 2024 108. 105. 3.27
We now plot the annual passenger traffic as a line graph. This visualization makes it easy to spot the sharp drop in 2020, the steady recovery afterward, and how ATL quickly regained its title as the world’s busiest airport.
ggplot(atl_data, aes(x = year, y = passengers)) +
geom_line() + geom_point() +
labs(title = "Annual Passenger Traffic at ATL",
x = "Year",
y = "Millions of Passengers") +
theme_minimal()
Passenger traffic dropped drastically in 2020 (COVID-19).
A strong rebound occurred in 2021–2022.
By 2023–2024, ATL surpassed 100 million passengers again, reaffirming its status as the busiest airport in the world.