Funny enough, the condition that makes it most likely to see a delay is normal atmospheric pressure!
weather_delay_dep <- flights %>%
select(dep_delay, origin, time_hour) %>%
filter(!is.na(dep_delay)) %>%
inner_join(weather) %>%
filter(!is.na(pressure))
pressure_delay <- weather_delay_dep %>%
mutate(pressure = round(pressure)) %>%
group_by(pressure) %>%
summarise(delay = median(dep_delay))
pressure_delay %>%
ggplot(aes(x = pressure, y = delay))+
geom_line() + geom_point()
You can see it even before calculating median delay for each pressure value (I use median rather than mean because delay distributions are skewed):
weather_delay_dep %>%
ggplot(aes(x = pressure, y = dep_delay)) +
geom_point() +
geom_smooth()