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

###1. join + filter - Which airplanes fly LGA to XNA

LGA_to_XNA <- flights %>%
  filter(origin == "LGA", dest == "XNA") %>%      
  left_join(planes, by = "tailnum") %>%       
  select(tailnum)

print(LGA_to_XNA)
## # A tibble: 745 × 1
##    tailnum
##    <chr>  
##  1 N722MQ 
##  2 N719MQ 
##  3 N739MQ 
##  4 N719MQ 
##  5 N711MQ 
##  6 N723MQ 
##  7 N711MQ 
##  8 N730MQ 
##  9 N722MQ 
## 10 N719MQ 
## # ℹ 735 more rows

2. join - Add the airline name to the flights table

flights_with_airlines <- flights %>%
  left_join(airlines, by = "carrier") %>% 
  select(name)  


print(flights_with_airlines)
## # A tibble: 336,776 × 1
##    name                    
##    <chr>                   
##  1 United Air Lines Inc.   
##  2 United Air Lines Inc.   
##  3 American Airlines Inc.  
##  4 JetBlue Airways         
##  5 Delta Air Lines Inc.    
##  6 United Air Lines Inc.   
##  7 JetBlue Airways         
##  8 ExpressJet Airlines Inc.
##  9 JetBlue Airways         
## 10 American Airlines Inc.  
## # ℹ 336,766 more rows

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

airports_no_flights <- airports %>%
  left_join(flights %>% distinct(origin) %>% rename(faa = origin), by = "faa") %>%
  filter(is.na(origin)) %>%
  select(faa, name) %>%
  distinct()

print(airports_no_flights)
## # A tibble: 0 × 2
## # ℹ 2 variables: faa <chr>, name <chr>

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

airports_with_high_wind <- weather %>%
  filter(wind_speed > 30) %>%
  left_join(airports, by = c("origin" = "faa")) %>%  
  select(name) %>%                                   
  distinct()                                      


print(airports_with_high_wind)
## # A tibble: 3 × 1
##   name               
##   <chr>              
## 1 Newark Liberty Intl
## 2 John F Kennedy Intl
## 3 La Guardia