library(tidyverse)
library(openintro)
data (nycflights)
ggplot(data = nycflights, aes(x = dep_delay)) +
geom_histogram()

ggplot(data = nycflights, aes(x = dep_delay)) +
geom_histogram(binwidth = 15)

ggplot(data = nycflights, aes(x = dep_delay)) +
geom_histogram(binwidth = 150)

lax_flights <- nycflights %>%
filter(dest == "LAX")
ggplot(data = lax_flights, aes(x = dep_delay)) +
geom_histogram()

lax_flights %>%
summarise(mean_dd = mean(dep_delay),
median_dd = median(dep_delay),
n = n())
## # A tibble: 1 × 3
## mean_dd median_dd n
## <dbl> <dbl> <int>
## 1 9.78 -1 1583
sfo_feb_flights <- nycflights %>%
filter(dest == "SFO", month == 2)
nrow(sfo_feb_flights)
## [1] 68
ggplot(data = sfo_feb_flights, aes(x = arr_delay)) +
geom_histogram()

sfo_feb_flights %>%
summarise(mean_ad = mean(arr_delay, na.rm = TRUE),
median_ad = median(arr_delay, na.rm = TRUE),
sd_ad = sd(arr_delay, na.rm = TRUE),
iqr_ad = IQR(arr_delay, na.rm = TRUE),
min_ad = min(arr_delay, na.rm = TRUE),
max_ad = max(arr_delay, na.rm = TRUE),
n = n())
## # A tibble: 1 × 7
## mean_ad median_ad sd_ad iqr_ad min_ad max_ad n
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
## 1 -4.5 -11 36.3 23.2 -66 196 68
sfo_feb_flights %>%
group_by(origin) %>%
summarise(median_dd = median(dep_delay), iqr_dd = IQR(dep_delay), n_flights = n())
## # A tibble: 2 × 4
## origin median_dd iqr_dd n_flights
## <chr> <dbl> <dbl> <int>
## 1 EWR 0.5 5.75 8
## 2 JFK -2.5 15.2 60
sfo_feb_flights %>%
group_by(carrier) %>%
summarise(median_ad = median(arr_delay, na.rm = TRUE),
iqr_ad = IQR(arr_delay, na.rm = TRUE),
n_flights = n()) %>%
arrange(desc(iqr_ad))
## # A tibble: 5 × 4
## carrier median_ad iqr_ad n_flights
## <chr> <dbl> <dbl> <int>
## 1 DL -15 22 19
## 2 UA -10 22 21
## 3 VX -22.5 21.2 12
## 4 AA 5 17.5 10
## 5 B6 -10.5 12.2 6
nycflights %>%
group_by(month) %>%
summarise(mean_dd = mean(dep_delay, na.rm = TRUE)) %>%
arrange(desc(mean_dd))
## # A tibble: 12 × 2
## month mean_dd
## <int> <dbl>
## 1 7 20.8
## 2 6 20.4
## 3 12 17.4
## 4 4 14.6
## 5 3 13.5
## 6 5 13.3
## 7 8 12.6
## 8 2 10.7
## 9 1 10.2
## 10 9 6.87
## 11 11 6.10
## 12 10 5.88
nycflights <- nycflights %>%
mutate(dep_type = ifelse(dep_delay < 5, "on time", "delayed"))
nycflights %>%
group_by(origin) %>%
summarise(ot_dep_rate = sum(dep_type == "on time") / n()) %>%
arrange(desc(ot_dep_rate))
## # A tibble: 3 × 2
## origin ot_dep_rate
## <chr> <dbl>
## 1 LGA 0.728
## 2 JFK 0.694
## 3 EWR 0.637
ggplot(data = nycflights, aes(x = origin, fill = dep_type)) +
geom_bar()

nycflights <- nycflights %>%
mutate(avg_speed = distance / (air_time / 60))
ggplot(data = nycflights, aes(x = distance, y = avg_speed)) +
geom_point()

selected_carriers <- nycflights %>%
filter(carrier %in% c("AA", "DL", "UA"))
ggplot(data = selected_carriers, aes(x = dep_delay, y = arr_delay, color = carrier)) +
geom_point()

LS0tCnRpdGxlOiAiTGFiIDI6IEludHJvZHVjdGlvbiB0byBEYXRhIgphdXRob3I6ICJJbWFhbiBNdWdoYWwiCmRhdGU6ICI3LzMvMjAyNCIKb3V0cHV0OiBvcGVuaW50cm86OmxhYl9yZXBvcnQKLS0tCgpgYGB7ciBsb2FkLXBhY2thZ2VzLCBtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShvcGVuaW50cm8pCmRhdGEgKG55Y2ZsaWdodHMpCgoKZ2dwbG90KGRhdGEgPSBueWNmbGlnaHRzLCBhZXMoeCA9IGRlcF9kZWxheSkpICsKICBnZW9tX2hpc3RvZ3JhbSgpCgpnZ3Bsb3QoZGF0YSA9IG55Y2ZsaWdodHMsIGFlcyh4ID0gZGVwX2RlbGF5KSkgKwogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMTUpCgpnZ3Bsb3QoZGF0YSA9IG55Y2ZsaWdodHMsIGFlcyh4ID0gZGVwX2RlbGF5KSkgKwogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMTUwKQoKbGF4X2ZsaWdodHMgPC0gbnljZmxpZ2h0cyAlPiUKICBmaWx0ZXIoZGVzdCA9PSAiTEFYIikKCmdncGxvdChkYXRhID0gbGF4X2ZsaWdodHMsIGFlcyh4ID0gZGVwX2RlbGF5KSkgKwogIGdlb21faGlzdG9ncmFtKCkKCmxheF9mbGlnaHRzICU+JQogIHN1bW1hcmlzZShtZWFuX2RkID0gbWVhbihkZXBfZGVsYXkpLCAKICAgICAgICAgICAgbWVkaWFuX2RkID0gbWVkaWFuKGRlcF9kZWxheSksIAogICAgICAgICAgICBuID0gbigpKQoKc2ZvX2ZlYl9mbGlnaHRzIDwtIG55Y2ZsaWdodHMgJT4lCiAgZmlsdGVyKGRlc3QgPT0gIlNGTyIsIG1vbnRoID09IDIpCgpucm93KHNmb19mZWJfZmxpZ2h0cykKCmdncGxvdChkYXRhID0gc2ZvX2ZlYl9mbGlnaHRzLCBhZXMoeCA9IGFycl9kZWxheSkpICsKICBnZW9tX2hpc3RvZ3JhbSgpCgpzZm9fZmViX2ZsaWdodHMgJT4lCiAgc3VtbWFyaXNlKG1lYW5fYWQgPSBtZWFuKGFycl9kZWxheSwgbmEucm0gPSBUUlVFKSwgCiAgICAgICAgICAgIG1lZGlhbl9hZCA9IG1lZGlhbihhcnJfZGVsYXksIG5hLnJtID0gVFJVRSksIAogICAgICAgICAgICBzZF9hZCA9IHNkKGFycl9kZWxheSwgbmEucm0gPSBUUlVFKSwgCiAgICAgICAgICAgIGlxcl9hZCA9IElRUihhcnJfZGVsYXksIG5hLnJtID0gVFJVRSksIAogICAgICAgICAgICBtaW5fYWQgPSBtaW4oYXJyX2RlbGF5LCBuYS5ybSA9IFRSVUUpLCAKICAgICAgICAgICAgbWF4X2FkID0gbWF4KGFycl9kZWxheSwgbmEucm0gPSBUUlVFKSwgCiAgICAgICAgICAgIG4gPSBuKCkpCgpzZm9fZmViX2ZsaWdodHMgJT4lCiAgZ3JvdXBfYnkob3JpZ2luKSAlPiUKICBzdW1tYXJpc2UobWVkaWFuX2RkID0gbWVkaWFuKGRlcF9kZWxheSksIGlxcl9kZCA9IElRUihkZXBfZGVsYXkpLCBuX2ZsaWdodHMgPSBuKCkpCgpzZm9fZmViX2ZsaWdodHMgJT4lCiAgZ3JvdXBfYnkoY2FycmllcikgJT4lCiAgc3VtbWFyaXNlKG1lZGlhbl9hZCA9IG1lZGlhbihhcnJfZGVsYXksIG5hLnJtID0gVFJVRSksIAogICAgICAgICAgICBpcXJfYWQgPSBJUVIoYXJyX2RlbGF5LCBuYS5ybSA9IFRSVUUpLCAKICAgICAgICAgICAgbl9mbGlnaHRzID0gbigpKSAlPiUKICBhcnJhbmdlKGRlc2MoaXFyX2FkKSkKCm55Y2ZsaWdodHMgJT4lCiAgZ3JvdXBfYnkobW9udGgpICU+JQogIHN1bW1hcmlzZShtZWFuX2RkID0gbWVhbihkZXBfZGVsYXksIG5hLnJtID0gVFJVRSkpICU+JQogIGFycmFuZ2UoZGVzYyhtZWFuX2RkKSkKCm55Y2ZsaWdodHMgPC0gbnljZmxpZ2h0cyAlPiUKICBtdXRhdGUoZGVwX3R5cGUgPSBpZmVsc2UoZGVwX2RlbGF5IDwgNSwgIm9uIHRpbWUiLCAiZGVsYXllZCIpKQoKbnljZmxpZ2h0cyAlPiUKICBncm91cF9ieShvcmlnaW4pICU+JQogIHN1bW1hcmlzZShvdF9kZXBfcmF0ZSA9IHN1bShkZXBfdHlwZSA9PSAib24gdGltZSIpIC8gbigpKSAlPiUKICBhcnJhbmdlKGRlc2Mob3RfZGVwX3JhdGUpKQoKZ2dwbG90KGRhdGEgPSBueWNmbGlnaHRzLCBhZXMoeCA9IG9yaWdpbiwgZmlsbCA9IGRlcF90eXBlKSkgKwogIGdlb21fYmFyKCkKCm55Y2ZsaWdodHMgPC0gbnljZmxpZ2h0cyAlPiUKICBtdXRhdGUoYXZnX3NwZWVkID0gZGlzdGFuY2UgLyAoYWlyX3RpbWUgLyA2MCkpCgpnZ3Bsb3QoZGF0YSA9IG55Y2ZsaWdodHMsIGFlcyh4ID0gZGlzdGFuY2UsIHkgPSBhdmdfc3BlZWQpKSArCiAgZ2VvbV9wb2ludCgpCgpzZWxlY3RlZF9jYXJyaWVycyA8LSBueWNmbGlnaHRzICU+JQogIGZpbHRlcihjYXJyaWVyICVpbiUgYygiQUEiLCAiREwiLCAiVUEiKSkKCmdncGxvdChkYXRhID0gc2VsZWN0ZWRfY2FycmllcnMsIGFlcyh4ID0gZGVwX2RlbGF5LCB5ID0gYXJyX2RlbGF5LCBjb2xvciA9IGNhcnJpZXIpKSArCiAgZ2VvbV9wb2ludCgpCgoKCg==