options(repos = c(CRAN = "https://cran.rstudio.com/"))
library(nycflights13)
library(pacman)
library(dplyr)
pacman::p_load(nycflights13)

View(flights)
glimpse(flights)

summary(flights)



maxdep <- max(flights$dep_delay, na.rm=TRUE)

maxdep_id <- which(flights$dep_delay==maxdep)

flights[maxdep_id, 10:12]


sortf <- arrange(flights,desc(dep_delay)) 

select(sortf, carrier, flight, tailnum, everything())

These 2 methods would work

flights %>% 
  
  group_by(year, month, day) %>% 
  
  summarise(mean = mean(dep_delay, na.rm = TRUE))



not_cancelled <- flights %>% 
  
  filter(!is.na(dep_delay))

not_cancelled %>% 
  
  group_by(year, month, day) %>% 
  
  summarise(mean = mean(dep_delay))




Tailnum_delay_avg <- flights %>% 
  
  group_by(tailnum) %>% 
  
  summarise(avg_arr_delay = mean(arr_delay))

summarise(Tailnum_delay_avg)

Sort chart by avg_arr_delay, tailnum is N560AS



flight_times <- flight_times %>%
  mutate(before_midnight = last <= 2400)
flight_times <- flight_times %>%
  arrange(last)
view(flight_times)


hourplus_delays <- flights %>%
  group_by(month) %>%
  summarise(total_flights = n(),
    delayed_flights = sum(dep_delay > 60, na.rm = TRUE))

        
hourplus_delays$delayed_flights/hourplus_delays$total_flights

carrier_number <- flights %>% group_by(dest) %>% summarize(carriers = n_distinct(carrier) %>% 
arrange(carriers))

view(carrier_number)

delays <- flights %>% 
  
  group_by(dest) %>% 
  
  summarise(
    
    count = n(),
    
    dist = mean(distance, na.rm = TRUE),
    
    delay = mean(arr_delay, na.rm = TRUE)
    
  ) %>% 
  
  filter(count > 20, dest != "HNL")

delays
LS0tCnRpdGxlOiAiQXNzaWdubWVudDYhIgphdXRob3I6ICJDaHJpcyBNaWxsZXJpY2siCmRhdGU6ICIyMDI0LTEwLTE4IgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCmBgYHtyfQpvcHRpb25zKHJlcG9zID0gYyhDUkFOID0gImh0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS8iKSkKbGlicmFyeShueWNmbGlnaHRzMTMpCmxpYnJhcnkocGFjbWFuKQpsaWJyYXJ5KGRwbHlyKQpwYWNtYW46OnBfbG9hZChueWNmbGlnaHRzMTMpCgpWaWV3KGZsaWdodHMpCmdsaW1wc2UoZmxpZ2h0cykKCnN1bW1hcnkoZmxpZ2h0cykKCgoKbWF4ZGVwIDwtIG1heChmbGlnaHRzJGRlcF9kZWxheSwgbmEucm09VFJVRSkKCm1heGRlcF9pZCA8LSB3aGljaChmbGlnaHRzJGRlcF9kZWxheT09bWF4ZGVwKQoKZmxpZ2h0c1ttYXhkZXBfaWQsIDEwOjEyXQoKCnNvcnRmIDwtIGFycmFuZ2UoZmxpZ2h0cyxkZXNjKGRlcF9kZWxheSkpIAoKc2VsZWN0KHNvcnRmLCBjYXJyaWVyLCBmbGlnaHQsIHRhaWxudW0sIGV2ZXJ5dGhpbmcoKSkKYGBgCgojIFRoZXNlIDIgbWV0aG9kcyB3b3VsZCB3b3JrCgoKYGBge3J9CmZsaWdodHMgJT4lIAogIAogIGdyb3VwX2J5KHllYXIsIG1vbnRoLCBkYXkpICU+JSAKICAKICBzdW1tYXJpc2UobWVhbiA9IG1lYW4oZGVwX2RlbGF5LCBuYS5ybSA9IFRSVUUpKQoKCgpub3RfY2FuY2VsbGVkIDwtIGZsaWdodHMgJT4lIAogIAogIGZpbHRlcighaXMubmEoZGVwX2RlbGF5KSkKCm5vdF9jYW5jZWxsZWQgJT4lIAogIAogIGdyb3VwX2J5KHllYXIsIG1vbnRoLCBkYXkpICU+JSAKICAKICBzdW1tYXJpc2UobWVhbiA9IG1lYW4oZGVwX2RlbGF5KSkKCgoKClRhaWxudW1fZGVsYXlfYXZnIDwtIGZsaWdodHMgJT4lIAogIAogIGdyb3VwX2J5KHRhaWxudW0pICU+JSAKICAKICBzdW1tYXJpc2UoYXZnX2Fycl9kZWxheSA9IG1lYW4oYXJyX2RlbGF5KSkKCnN1bW1hcmlzZShUYWlsbnVtX2RlbGF5X2F2ZykKYGBgCgojIFNvcnQgY2hhcnQgYnkgYXZnX2Fycl9kZWxheSwgdGFpbG51bSBpcyBONTYwQVMKCgpgYGB7cn0KCgpmbGlnaHRfdGltZXMgPC0gZmxpZ2h0X3RpbWVzICU+JQogIG11dGF0ZShiZWZvcmVfbWlkbmlnaHQgPSBsYXN0IDw9IDI0MDApCmZsaWdodF90aW1lcyA8LSBmbGlnaHRfdGltZXMgJT4lCiAgYXJyYW5nZShsYXN0KQp2aWV3KGZsaWdodF90aW1lcykKCgpob3VycGx1c19kZWxheXMgPC0gZmxpZ2h0cyAlPiUKICBncm91cF9ieShtb250aCkgJT4lCiAgc3VtbWFyaXNlKHRvdGFsX2ZsaWdodHMgPSBuKCksCiAgICBkZWxheWVkX2ZsaWdodHMgPSBzdW0oZGVwX2RlbGF5ID4gNjAsIG5hLnJtID0gVFJVRSkpCgogICAgICAgIApob3VycGx1c19kZWxheXMkZGVsYXllZF9mbGlnaHRzL2hvdXJwbHVzX2RlbGF5cyR0b3RhbF9mbGlnaHRzCgpjYXJyaWVyX251bWJlciA8LSBmbGlnaHRzICU+JSBncm91cF9ieShkZXN0KSAlPiUgc3VtbWFyaXplKGNhcnJpZXJzID0gbl9kaXN0aW5jdChjYXJyaWVyKSAlPiUgCmFycmFuZ2UoY2FycmllcnMpKQoKdmlldyhjYXJyaWVyX251bWJlcikKCmRlbGF5cyA8LSBmbGlnaHRzICU+JSAKICAKICBncm91cF9ieShkZXN0KSAlPiUgCiAgCiAgc3VtbWFyaXNlKAogICAgCiAgICBjb3VudCA9IG4oKSwKICAgIAogICAgZGlzdCA9IG1lYW4oZGlzdGFuY2UsIG5hLnJtID0gVFJVRSksCiAgICAKICAgIGRlbGF5ID0gbWVhbihhcnJfZGVsYXksIG5hLnJtID0gVFJVRSkKICAgIAogICkgJT4lIAogIAogIGZpbHRlcihjb3VudCA+IDIwLCBkZXN0ICE9ICJITkwiKQoKZGVsYXlzCgpgYGAK