# Analyze seasonal patterns in encounters
encounters_seasonal <- encounters |>
mutate(
month = lubridate::month(start, label = TRUE),
year = lubridate::year(start),
season = case_when(
month %in% c("Dec", "Jan", "Feb") ~ "Winter",
month %in% c("Mar", "Apr", "May") ~ "Spring",
month %in% c("Jun", "Jul", "Aug") ~ "Summer",
month %in% c("Sep", "Oct", "Nov") ~ "Fall"
)
) |>
filter(year >= 2010) |>
count(month, season, name = "encounters")
# Analyze seasonal patterns in conditions
conditions_seasonal <- conditions |>
mutate(
month = lubridate::month(start, label = TRUE),
year = lubridate::year(start),
season = case_when(
month %in% c("Dec", "Jan", "Feb") ~ "Winter",
month %in% c("Mar", "Apr", "May") ~ "Spring",
month %in% c("Jun", "Jul", "Aug") ~ "Summer",
month %in% c("Sep", "Oct", "Nov") ~ "Fall"
)
) |>
filter(year >= 2010) |>
count(month, season, name = "conditions")
# Combined visualization
monthly_combined <- encounters_seasonal |>
left_join(
conditions_seasonal,
by = c("month", "season"),
suffix = c("_encounters", "_conditions")
) |>
select(month, encounters, conditions) |>
pivot_longer(
cols = c(encounters, conditions),
names_to = "metric",
values_to = "count"
)
p_seasonal <- ggplot(
monthly_combined,
aes(x = month, y = count, color = metric, group = metric)
) +
geom_line(linewidth = 1.2) +
geom_point(size = 3) +
scale_color_manual(
values = c("encounters" = "steelblue", "conditions" = "darkgreen"),
labels = c("Healthcare Encounters", "New Conditions")
) +
labs(
title = "Seasonal Patterns: Encounters vs. New Conditions (2010-2024)",
subtitle = "Comparing monthly patterns",
x = "Month",
y = "Total Count",
color = "Metric"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
print(p_seasonal)