Emily Trainor

Question 1

#install.packages("dplyr")
#install.packages("pacman")
pacman::p_load(nycflights13)
View(flights) # this View() function opens lets you directly view the whole dataset
glimpse(flights) # this glimpse() function provides a quick overview of the dataset
summary(flights)

Question 2


select(flights, starts_with("dep"))
 
sortf <- arrange(flights,desc(dep_delay)) 
select(sortf, carrier, flight, tailnum, everything())

summarise(flights, delay=mean(dep_delay,na.rm=TRUE))
maxdep <- max(flights$dep_delay, na.rm=TRUE)
maxdep_id <- which(flights$dep_delay==maxdep)
flights[maxdep_id, 10:12]

Question 3

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

not_cancelled
delays <- not_cancelled %>% 
 group_by(tailnum) %>% 
 summarise(
  delay = mean(arr_delay)
 )

delays

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

Question 4

library(dplyr)
library(nycflights13)

avg_arrival_delay <- flights %>%
  filter(!is.na(arr_delay)) %>%               
  group_by(tailnum) %>%                       
  summarise(avg_delay = mean(arr_delay, na.rm = TRUE), .groups = 'drop') 

str(avg_arrival_delay) 

lowest_delay <- avg_arrival_delay %>%
  arrange(avg_delay) %>%                      
  slice(1)                                     

lowest_delay

Question 5

not_cancelled %>% 
 group_by(year, month, day) %>% 
 summarise(
  first = min(dep_time),
  last = max(dep_time)
 )

Question 6

proportion_delays <- flights %>%
  filter(!is.na(dep_delay)) %>%  
  group_by(month) %>%            
  summarise(
    total_flights = n(),          
    delayed_flights = sum(dep_delay > 60),  
    proportion_delayed = delayed_flights / total_flights  
  ) %>%
  arrange(month)  

proportion_delays

Question 7

carriers_per_destination <- flights %>%
  group_by(dest) %>%                          
  summarise(unique_carriers = n_distinct(carrier), .groups = 'drop') %>%  
  arrange(desc(unique_carriers))              

carriers_per_destination

Question 9

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
LS0tCnRpdGxlOiAiQXNzaWdubWVudCA2IgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCiMjIyMgRW1pbHkgVHJhaW5vcgoKIyBRdWVzdGlvbiAxCmBgYHtyfQojaW5zdGFsbC5wYWNrYWdlcygiZHBseXIiKQojaW5zdGFsbC5wYWNrYWdlcygicGFjbWFuIikKcGFjbWFuOjpwX2xvYWQobnljZmxpZ2h0czEzKQpWaWV3KGZsaWdodHMpICMgdGhpcyBWaWV3KCkgZnVuY3Rpb24gb3BlbnMgbGV0cyB5b3UgZGlyZWN0bHkgdmlldyB0aGUgd2hvbGUgZGF0YXNldApnbGltcHNlKGZsaWdodHMpICMgdGhpcyBnbGltcHNlKCkgZnVuY3Rpb24gcHJvdmlkZXMgYSBxdWljayBvdmVydmlldyBvZiB0aGUgZGF0YXNldApzdW1tYXJ5KGZsaWdodHMpCmBgYAoKIyBRdWVzdGlvbiAyCmBgYHtyfQoKc2VsZWN0KGZsaWdodHMsIHN0YXJ0c193aXRoKCJkZXAiKSkKYGBgCgpgYGB7cn0KIApzb3J0ZiA8LSBhcnJhbmdlKGZsaWdodHMsZGVzYyhkZXBfZGVsYXkpKSAKc2VsZWN0KHNvcnRmLCBjYXJyaWVyLCBmbGlnaHQsIHRhaWxudW0sIGV2ZXJ5dGhpbmcoKSkKYGBgCgpgYGB7cn0KCnN1bW1hcmlzZShmbGlnaHRzLCBkZWxheT1tZWFuKGRlcF9kZWxheSxuYS5ybT1UUlVFKSkKYGBgCgpgYGB7cn0KbWF4ZGVwIDwtIG1heChmbGlnaHRzJGRlcF9kZWxheSwgbmEucm09VFJVRSkKbWF4ZGVwX2lkIDwtIHdoaWNoKGZsaWdodHMkZGVwX2RlbGF5PT1tYXhkZXApCmZsaWdodHNbbWF4ZGVwX2lkLCAxMDoxMl0KYGBgCgojIFF1ZXN0aW9uIDMKYGBge3J9Cm5vdF9jYW5jZWxsZWQgPC0gZmxpZ2h0cyAlPiUgCiBmaWx0ZXIoIWlzLm5hKGRlcF9kZWxheSksICFpcy5uYShhcnJfZGVsYXkpKQoKbm90X2NhbmNlbGxlZApgYGAKCmBgYHtyfQpkZWxheXMgPC0gbm90X2NhbmNlbGxlZCAlPiUgCiBncm91cF9ieSh0YWlsbnVtKSAlPiUgCiBzdW1tYXJpc2UoCiAgZGVsYXkgPSBtZWFuKGFycl9kZWxheSkKICkKCmRlbGF5cwpgYGAKCmBgYHtyfQoKZmxpZ2h0cyAlPiUgCiBncm91cF9ieSh5ZWFyLCBtb250aCwgZGF5KSAlPiUgCiBzdW1tYXJpc2UobWVhbiA9IG1lYW4oZGVwX2RlbGF5LCBuYS5ybSA9IFRSVUUpKQpgYGAKCmBgYHtyfQoKbm90X2NhbmNlbGxlZCA8LSBmbGlnaHRzICU+JSAKIGZpbHRlcighaXMubmEoZGVwX2RlbGF5KSkKCm5vdF9jYW5jZWxsZWQgJT4lIAogZ3JvdXBfYnkoeWVhciwgbW9udGgsIGRheSkgJT4lIAogc3VtbWFyaXNlKG1lYW4gPSBtZWFuKGRlcF9kZWxheSkpCmBgYAoKIyBRdWVzdGlvbiA0CmBgYHtyfQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KG55Y2ZsaWdodHMxMykKCmF2Z19hcnJpdmFsX2RlbGF5IDwtIGZsaWdodHMgJT4lCiAgZmlsdGVyKCFpcy5uYShhcnJfZGVsYXkpKSAlPiUgICAgICAgICAgICAgICAKICBncm91cF9ieSh0YWlsbnVtKSAlPiUgICAgICAgICAgICAgICAgICAgICAgIAogIHN1bW1hcmlzZShhdmdfZGVsYXkgPSBtZWFuKGFycl9kZWxheSwgbmEucm0gPSBUUlVFKSwgLmdyb3VwcyA9ICdkcm9wJykgCgpzdHIoYXZnX2Fycml2YWxfZGVsYXkpIAoKbG93ZXN0X2RlbGF5IDwtIGF2Z19hcnJpdmFsX2RlbGF5ICU+JQogIGFycmFuZ2UoYXZnX2RlbGF5KSAlPiUgICAgICAgICAgICAgICAgICAgICAgCiAgc2xpY2UoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgpsb3dlc3RfZGVsYXkKYGBgCgojIFF1ZXN0aW9uIDUKYGBge3J9Cm5vdF9jYW5jZWxsZWQgJT4lIAogZ3JvdXBfYnkoeWVhciwgbW9udGgsIGRheSkgJT4lIAogc3VtbWFyaXNlKAogIGZpcnN0ID0gbWluKGRlcF90aW1lKSwKICBsYXN0ID0gbWF4KGRlcF90aW1lKQogKQpgYGAKCiMgUXVlc3Rpb24gNgpgYGB7cn0KcHJvcG9ydGlvbl9kZWxheXMgPC0gZmxpZ2h0cyAlPiUKICBmaWx0ZXIoIWlzLm5hKGRlcF9kZWxheSkpICU+JSAgCiAgZ3JvdXBfYnkobW9udGgpICU+JSAgICAgICAgICAgIAogIHN1bW1hcmlzZSgKICAgIHRvdGFsX2ZsaWdodHMgPSBuKCksICAgICAgICAgIAogICAgZGVsYXllZF9mbGlnaHRzID0gc3VtKGRlcF9kZWxheSA+IDYwKSwgIAogICAgcHJvcG9ydGlvbl9kZWxheWVkID0gZGVsYXllZF9mbGlnaHRzIC8gdG90YWxfZmxpZ2h0cyAgCiAgKSAlPiUKICBhcnJhbmdlKG1vbnRoKSAgCgpwcm9wb3J0aW9uX2RlbGF5cwpgYGAKCiMgUXVlc3Rpb24gNwpgYGB7cn0KY2FycmllcnNfcGVyX2Rlc3RpbmF0aW9uIDwtIGZsaWdodHMgJT4lCiAgZ3JvdXBfYnkoZGVzdCkgJT4lICAgICAgICAgICAgICAgICAgICAgICAgICAKICBzdW1tYXJpc2UodW5pcXVlX2NhcnJpZXJzID0gbl9kaXN0aW5jdChjYXJyaWVyKSwgLmdyb3VwcyA9ICdkcm9wJykgJT4lICAKICBhcnJhbmdlKGRlc2ModW5pcXVlX2NhcnJpZXJzKSkgICAgICAgICAgICAgIAoKY2FycmllcnNfcGVyX2Rlc3RpbmF0aW9uCmBgYAoKIyBRdWVzdGlvbiA5CmBgYHtyfQpkZWxheXMgPC0gZmxpZ2h0cyAlPiUgCiBncm91cF9ieShkZXN0KSAlPiUgCiBzdW1tYXJpc2UoCiAgY291bnQgPSBuKCksCiAgZGlzdCA9IG1lYW4oZGlzdGFuY2UsIG5hLnJtID0gVFJVRSksCiAgZGVsYXkgPSBtZWFuKGFycl9kZWxheSwgbmEucm0gPSBUUlVFKQogKSAlPiUgCiBmaWx0ZXIoY291bnQgPiAyMCwgZGVzdCAhPSAiSE5MIikKCmRlbGF5cwpgYGAKCg==