Skip to content

Commit

Permalink
Create flight_times
Browse files Browse the repository at this point in the history
  • Loading branch information
seslezak committed Dec 27, 2017
1 parent 5a93f47 commit ef51840
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions flight_times
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
library(tidyverse)
library(lubridate)
library(nycflights13)

flights %>% select(year, month, day, hour, minute)

flights %>% select(year, month, day, hour, minute) %>%
mutate(departure = make_date(year, month, day))

flights %>% select(year, month, day, hour, minute) %>%
mutate(departure = make_datetime(year, month, day, hour, minute))

make_datetime_100 <- function(year, month, day, time) {
make_datetime(year, month, day, time %/% 100, time %% 100)
}

flights_dt <- flights %>% filter(!is.na(dep_time), !is.na(arr_time)) %>%
mutate(
dep_time = make_datetime_100(year, month, day, dep_time),
arr_time = make_datetime_100(year, month, day, arr_time),
sched_dep_time = make_datetime_100(year, month, day, sched_dep_time),
sched_arr_time = make_datetime_100(year, month, day, sched_arr_time)
) %>%
select(origin, dest, ends_with("delay"), ends_with("time"))

flights_dt

flights_dt %>% ggplot(aes(dep_time)) + geom_freqpoly(binwidth = 86400)

flights_dt %>% filter(dep_time < ymd(20130102)) %>%
ggplot(aes(dep_time)) +
geom_freqpoly(binwidth = 600)

flights_dt %>%
mutate(wday = wday(dep_time, label = TRUE)) %>%
ggplot(aes(x = wday)) +
geom_bar()

flights_dt %>%
mutate(minute = minute(dep_time)) %>%
group_by(minute) %>%
summarize(avg_delay = mean(arr_delay, na.rm = TRUE),
n = n()) %>%
ggplot(aes(minute, avg_delay)) + geom_line()

sched_dep <- flights_dt %>%
mutate(minute = minute(sched_dep_time)) %>%
group_by(minute) %>%
summarize(avg_delay = mean(arr_delay, na.rm = TRUE),
n = n())

ggplot(sched_dep, aes(minute, avg_delay)) + geom_line ()

ggplot(sched_dep, aes(minute, n)) + geom_line()

flights_dt %>%
count(week = floor_date(dep_time, "week")) %>%
ggplot(aes(week, n)) + geom_line()

flights_dt %>%
filter(arr_time < dep_time)

flights_dt <- flights_dt %>%
mutate(
overnight = arr_time < dep_time,
arr_time = arr_time + days(overnight * 1),
sched_arr_time = sched_arr_time + days(overnight * 1)
)

flights_dt

flights_dt %>% filter(overnight, arr_time < dep_time)

0 comments on commit ef51840

Please sign in to comment.