library(tidyverse)
library(openintro)
data("nycflights")

Exercise 1

names(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)

Exercise 2

sfo_feb_flights <- nycflights %>%
  filter(dest == "SFO", month == 2)
glimpse(sfo_feb_flights)

Exercise 3

ggplot(data = sfo_feb_flights, aes(x = arr_delay)) +
  geom_histogram(binwidth=10)
sfo_feb_flights %>%
  summarise(mean_ad = mean(arr_delay), median_ad = median(arr_delay), iqr_ad = IQR(arr_delay), n_flights = n())

Exercise 4

sfo_feb_flights %>%
  group_by(carrier) %>%
  summarise(median_ad = median(arr_delay), iqr_ad = IQR(arr_delay), n_flights = n())

Exercise 5

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))

Exercise 6

ggplot(data = nycflights, aes(x = origin, fill = dep_type)) +
  geom_bar()

Exercise 7

nycflights <- nycflights %>%
  mutate(avg_speed = 60*(distance / air_time))
glimpse(nycflights)

Exercise 8

ggplot(data = nycflights, aes(x = distance, y = avg_speed)) + geom_point()

Exercise 9

nycflights_3carriers <- nycflights %>%
  filter(carrier == "AA" | carrier == "DL" | carrier == "UA")
ggplot(data = nycflights_3carriers, aes(x = dep_delay, y = arr_delay, color= carrier)) + geom_point()
LS0tCnRpdGxlOiAiQ2g2IgphdXRob3I6ICJNYWNHYXJyaWdsZSIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6IG9wZW5pbnRybzo6bGFiX3JlcG9ydAotLS0KCmBgYHtyIGxvYWQtcGFja2FnZXMsIG1lc3NhZ2U9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KG9wZW5pbnRybykKZGF0YSgibnljZmxpZ2h0cyIpCmBgYAojIyMgRXhlcmNpc2UgMQpgYGAKbmFtZXMobnljZmxpZ2h0cykKZ2dwbG90KGRhdGEgPSBueWNmbGlnaHRzLCBhZXMoeCA9IGRlcF9kZWxheSkpICsKICBnZW9tX2hpc3RvZ3JhbSgpCmdncGxvdChkYXRhID0gbnljZmxpZ2h0cywgYWVzKHggPSBkZXBfZGVsYXkpKSArCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSAxNSkKZ2dwbG90KGRhdGEgPSBueWNmbGlnaHRzLCBhZXMoeCA9IGRlcF9kZWxheSkpICsKICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDE1MCkKYGBgCgojIyMgRXhlcmNpc2UgMgpgYGAKc2ZvX2ZlYl9mbGlnaHRzIDwtIG55Y2ZsaWdodHMgJT4lCiAgZmlsdGVyKGRlc3QgPT0gIlNGTyIsIG1vbnRoID09IDIpCmdsaW1wc2Uoc2ZvX2ZlYl9mbGlnaHRzKQpgYGAKCiMjIEV4ZXJjaXNlIDMKYGBgCmdncGxvdChkYXRhID0gc2ZvX2ZlYl9mbGlnaHRzLCBhZXMoeCA9IGFycl9kZWxheSkpICsKICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xMCkKc2ZvX2ZlYl9mbGlnaHRzICU+JQogIHN1bW1hcmlzZShtZWFuX2FkID0gbWVhbihhcnJfZGVsYXkpLCBtZWRpYW5fYWQgPSBtZWRpYW4oYXJyX2RlbGF5KSwgaXFyX2FkID0gSVFSKGFycl9kZWxheSksIG5fZmxpZ2h0cyA9IG4oKSkKYGBgCiAgCiMjIEV4ZXJjaXNlIDQKYGBgCnNmb19mZWJfZmxpZ2h0cyAlPiUKICBncm91cF9ieShjYXJyaWVyKSAlPiUKICBzdW1tYXJpc2UobWVkaWFuX2FkID0gbWVkaWFuKGFycl9kZWxheSksIGlxcl9hZCA9IElRUihhcnJfZGVsYXkpLCBuX2ZsaWdodHMgPSBuKCkpCmBgYAoKIyMgRXhlcmNpc2UgNQpgYGAKbnljZmxpZ2h0cyA8LSBueWNmbGlnaHRzICU+JQogIG11dGF0ZShkZXBfdHlwZSA9IGlmZWxzZShkZXBfZGVsYXkgPCA1LCAib24gdGltZSIsICJkZWxheWVkIikpCm55Y2ZsaWdodHMgJT4lCiAgZ3JvdXBfYnkob3JpZ2luKSAlPiUKICBzdW1tYXJpc2Uob3RfZGVwX3JhdGUgPSBzdW0oZGVwX3R5cGUgPT0gIm9uIHRpbWUiKSAvIG4oKSkgJT4lCiAgYXJyYW5nZShkZXNjKG90X2RlcF9yYXRlKSkKYGBgCgojIyBFeGVyY2lzZSA2CmBgYApnZ3Bsb3QoZGF0YSA9IG55Y2ZsaWdodHMsIGFlcyh4ID0gb3JpZ2luLCBmaWxsID0gZGVwX3R5cGUpKSArCiAgZ2VvbV9iYXIoKQpgYGAKCiMjIEV4ZXJjaXNlIDcKYGBgCm55Y2ZsaWdodHMgPC0gbnljZmxpZ2h0cyAlPiUKICBtdXRhdGUoYXZnX3NwZWVkID0gNjAqKGRpc3RhbmNlIC8gYWlyX3RpbWUpKQpnbGltcHNlKG55Y2ZsaWdodHMpCmBgYAoKIyMgRXhlcmNpc2UgOApgYGAKZ2dwbG90KGRhdGEgPSBueWNmbGlnaHRzLCBhZXMoeCA9IGRpc3RhbmNlLCB5ID0gYXZnX3NwZWVkKSkgKyBnZW9tX3BvaW50KCkKCmBgYAoKIyMgRXhlcmNpc2UgOQpgYGAKbnljZmxpZ2h0c18zY2FycmllcnMgPC0gbnljZmxpZ2h0cyAlPiUKICBmaWx0ZXIoY2FycmllciA9PSAiQUEiIHwgY2FycmllciA9PSAiREwiIHwgY2FycmllciA9PSAiVUEiKQpnZ3Bsb3QoZGF0YSA9IG55Y2ZsaWdodHNfM2NhcnJpZXJzLCBhZXMoeCA9IGRlcF9kZWxheSwgeSA9IGFycl9kZWxheSwgY29sb3I9IGNhcnJpZXIpKSArIGdlb21fcG9pbnQoKQpgYGAK