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 (1 POINT)
flights_from_LGA <- flights %>%
filter(origin == "LGA")
flights_LGA_to_XNA <- flights_from_LGA %>%
inner_join(airports, by = c("dest" = "faa")) %>%
filter(dest == "XNA")
flights_LGA_to_XNA <- flights_LGA_to_XNA %>%
select(year, month, day, dep_time, arr_time, carrier, flight, tailnum)
print(flights_LGA_to_XNA)
## # A tibble: 745 × 8
## year month day dep_time arr_time carrier flight tailnum
## <int> <int> <int> <int> <int> <chr> <int> <chr>
## 1 2013 1 1 656 1007 MQ 4534 N722MQ
## 2 2013 1 1 1525 1934 MQ 4525 N719MQ
## 3 2013 1 1 1740 2158 MQ 4413 N739MQ
## 4 2013 1 2 656 1014 MQ 4534 N719MQ
## 5 2013 1 2 1531 1846 MQ 4525 N711MQ
## 6 2013 1 2 1740 2035 MQ 4413 N723MQ
## 7 2013 1 3 703 1014 MQ 4534 N711MQ
## 8 2013 1 3 1525 1802 MQ 4525 N730MQ
## 9 2013 1 3 1737 1953 MQ 4413 N722MQ
## 10 2013 1 4 701 934 MQ 4534 N719MQ
## # ℹ 735 more rows
2. join - Add the airline name to the flights table (1 POINT)
flights_with_airline <- flights %>%
inner_join(airlines, by = "carrier")
flights_with_airline <- flights_with_airline %>%
select(year, month, day, dep_time, arr_time, carrier, name, flight, tailnum)
print(flights_with_airline)
## # A tibble: 336,776 × 9
## year month day dep_time arr_time carrier name flight tailnum
## <int> <int> <int> <int> <int> <chr> <chr> <int> <chr>
## 1 2013 1 1 517 830 UA United Air Lines … 1545 N14228
## 2 2013 1 1 533 850 UA United Air Lines … 1714 N24211
## 3 2013 1 1 542 923 AA American Airlines… 1141 N619AA
## 4 2013 1 1 544 1004 B6 JetBlue Airways 725 N804JB
## 5 2013 1 1 554 812 DL Delta Air Lines I… 461 N668DN
## 6 2013 1 1 554 740 UA United Air Lines … 1696 N39463
## 7 2013 1 1 555 913 B6 JetBlue Airways 507 N516JB
## 8 2013 1 1 557 709 EV ExpressJet Airlin… 5708 N829AS
## 9 2013 1 1 557 838 B6 JetBlue Airways 79 N593JB
## 10 2013 1 1 558 753 AA American Airlines… 301 N3ALAA
## # ℹ 336,766 more rows
3. join + select + distinct() - Which airports have no commercial
flights (1 POINT)
commercial_airports <- flights %>%
select(origin, dest) %>%
distinct() %>%
gather(key = "type", value = "faa", origin, dest) %>%
distinct(faa)
airports_no_flights <- airports %>%
anti_join(commercial_airports, by = "faa")
print(airports_no_flights)
## # A tibble: 1,355 × 8
## faa name lat lon alt tz dst tzone
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <chr> <chr>
## 1 04G Lansdowne Airport 41.1 -80.6 1044 -5 A America/…
## 2 06A Moton Field Municipal Airport 32.5 -85.7 264 -6 A America/…
## 3 06C Schaumburg Regional 42.0 -88.1 801 -6 A America/…
## 4 06N Randall Airport 41.4 -74.4 523 -5 A America/…
## 5 09J Jekyll Island Airport 31.1 -81.4 11 -5 A America/…
## 6 0A9 Elizabethton Municipal Airport 36.4 -82.2 1593 -5 A America/…
## 7 0G6 Williams County Airport 41.5 -84.5 730 -5 A America/…
## 8 0G7 Finger Lakes Regional Airport 42.9 -76.8 492 -5 A America/…
## 9 0P2 Shoestring Aviation Airfield 39.8 -76.6 1000 -5 U America/…
## 10 0S9 Jefferson County Intl 48.1 -123. 108 -8 A America/…
## # ℹ 1,345 more rows