1.join+filter:

#join flights with planes 
lga_to_xna_flights <- flights %>%
  filter(origin == "LGA", dest == "XNA") %>%
  left_join(planes, by = "tailnum")

#resultt
lga_to_xna_flights
## # A tibble: 745 × 27
##    year.x month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
##     <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
##  1   2013     1     1      656            705        -9     1007            940
##  2   2013     1     1     1525           1530        -5     1934           1805
##  3   2013     1     1     1740           1745        -5     2158           2020
##  4   2013     1     2      656            705        -9     1014            940
##  5   2013     1     2     1531           1530         1     1846           1805
##  6   2013     1     2     1740           1745        -5     2035           2020
##  7   2013     1     3      703            705        -2     1014            940
##  8   2013     1     3     1525           1530        -5     1802           1805
##  9   2013     1     3     1737           1745        -8     1953           2020
## 10   2013     1     4      701            705        -4      934            940
## # ℹ 735 more rows
## # ℹ 19 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
## #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
## #   hour <dbl>, minute <dbl>, time_hour <dttm>, year.y <int>, type <chr>,
## #   manufacturer <chr>, model <chr>, engines <int>, seats <int>, speed <int>,
## #   engine <chr>

2. join

# add airline names by joining flights with airlines
flights_with_airline_name <- flights %>%
  left_join(airlines, by = "carrier")

#result
flights_with_airline_name
## # A tibble: 336,776 × 20
##     year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
##    <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
##  1  2013     1     1      517            515         2      830            819
##  2  2013     1     1      533            529         4      850            830
##  3  2013     1     1      542            540         2      923            850
##  4  2013     1     1      544            545        -1     1004           1022
##  5  2013     1     1      554            600        -6      812            837
##  6  2013     1     1      554            558        -4      740            728
##  7  2013     1     1      555            600        -5      913            854
##  8  2013     1     1      557            600        -3      709            723
##  9  2013     1     1      557            600        -3      838            846
## 10  2013     1     1      558            600        -2      753            745
## # ℹ 336,766 more rows
## # ℹ 12 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
## #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
## #   hour <dbl>, minute <dbl>, time_hour <dttm>, name <chr>

3.join+select+distinct():

#find the airports with no flights with an anti join
airports_without_flights <- airports %>%
  anti_join(flights, by = c("faa" = "dest")) %>%
  select(name) %>%
  distinct()

#result
airports_without_flights
## # A tibble: 1,339 × 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
##  7 Williams County Airport       
##  8 Finger Lakes Regional Airport 
##  9 Shoestring Aviation Airfield  
## 10 Jefferson County Intl         
## # ℹ 1,329 more rows

4.EXTRA CREDIT:

# Create a table with airports that have the highest wind speeds
airports_with_high_winds <- weather %>%
  filter(wind_speed > 30) %>%
  left_join(airports, by = c("origin" = "faa")) %>%
  select(name) %>%
  distinct()

# result
airports_with_high_winds
## # A tibble: 3 × 1
##   name               
##   <chr>              
## 1 Newark Liberty Intl
## 2 John F Kennedy Intl
## 3 La Guardia