library(nycflights13)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)

1. join + filter - Which airplanes fly LGA to XNA (1 POINT)

flights_filtered <- flights %>%
  filter(origin == "LGA", dest == "XNA")

planes_filtered <- flights_filtered %>%
  select(flight, origin, dest)

head(planes_filtered)
## # A tibble: 6 × 3
##   flight origin dest 
##    <int> <chr>  <chr>
## 1   4534 LGA    XNA  
## 2   4525 LGA    XNA  
## 3   4413 LGA    XNA  
## 4   4534 LGA    XNA  
## 5   4525 LGA    XNA  
## 6   4413 LGA    XNA

2. join - Add the airline name to the flights table (1 POINT)

flights2 <- right_join(airlines, flights, by = "carrier")
head(flights2)
## # A tibble: 6 × 20
##   carrier name       year month   day dep_time sched_dep_time dep_delay arr_time
##   <chr>   <chr>     <int> <int> <int>    <int>          <int>     <dbl>    <int>
## 1 9E      Endeavor…  2013     1     1      810            810         0     1048
## 2 9E      Endeavor…  2013     1     1     1451           1500        -9     1634
## 3 9E      Endeavor…  2013     1     1     1452           1455        -3     1637
## 4 9E      Endeavor…  2013     1     1     1454           1500        -6     1635
## 5 9E      Endeavor…  2013     1     1     1507           1515        -8     1651
## 6 9E      Endeavor…  2013     1     1     1530           1530         0     1650
## # ℹ 11 more variables: sched_arr_time <int>, arr_delay <dbl>, flight <int>,
## #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
## #   hour <dbl>, minute <dbl>, time_hour <dttm>

3. join + select + distinct() - Which airports have no commercial flights (1 POINT)

no_commercial <- airports%>%
  anti_join(flights, by = c("faa" = "dest")) %>%
  select(name) %>%
  distinct()
head(no_commercial)
## # A tibble: 6 × 1
##   name                          
##   <chr>                         
## 1 Lansdowne Airport             
## 2 Moton Field Municipal Airport 
## 3 Schaumburg Regional           
## 4 Randall Airport               
## 5 Jekyll Island Airport         
## 6 Elizabethton Municipal Airport

4. EXTRA CREDIT - (2 POINT2) - NO HELP - NO PARTIAL CREDIT. Create a table with the names of the airports with the most winds (wind_speed > 30). The table must contain only the airport name (airports$name) and no duplicate rows.

wind_speed <- weather %>%
  filter(wind_speed > 30) %>%
  inner_join(airports, by = c("origin" = "faa")) %>% 
  select(name) %>%
  distinct()
head(wind_speed)
## # A tibble: 3 × 1
##   name               
##   <chr>              
## 1 Newark Liberty Intl
## 2 John F Kennedy Intl
## 3 La Guardia