##Q1
data(cars)
median_speed <- median(cars$speed)
##Q2
library(readr)
On_Time_Performance <- read_csv("~/Desktop/Data 4310/Mini Project-2 2/On_Time_Performance.csv")
## New names:
## • `` -> `...110`
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
## dat <- vroom(...)
## problems(dat)
## Rows: 570131 Columns: 110
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (28): UniqueCarrier, Carrier, TailNum, Origin, OriginCityName, OriginSt...
## dbl (54): Year, Quarter, Month, DayofMonth, DayOfWeek, AirlineID, FlightNum...
## lgl (27): Div2WheelsOff, Div2TailNum, Div3Airport, Div3AirportID, Div3Airpo...
## date (1): FlightDate
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
##Q3
sum(is.na(On_Time_Performance$Div2WheelsOff))
## [1] 570131
##Q4
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data <- read.csv("~/Desktop/Data 4310/Mini Project-2 2/On_Time_Performance.csv")
colnames(data)
## [1] "Year" "Quarter" "Month"
## [4] "DayofMonth" "DayOfWeek" "FlightDate"
## [7] "UniqueCarrier" "AirlineID" "Carrier"
## [10] "TailNum" "FlightNum" "OriginAirportID"
## [13] "OriginAirportSeqID" "OriginCityMarketID" "Origin"
## [16] "OriginCityName" "OriginState" "OriginStateFips"
## [19] "OriginStateName" "OriginWac" "DestAirportID"
## [22] "DestAirportSeqID" "DestCityMarketID" "Dest"
## [25] "DestCityName" "DestState" "DestStateFips"
## [28] "DestStateName" "DestWac" "CRSDepTime"
## [31] "DepTime" "DepDelay" "DepDelayMinutes"
## [34] "DepDel15" "DepartureDelayGroups" "DepTimeBlk"
## [37] "TaxiOut" "WheelsOff" "WheelsOn"
## [40] "TaxiIn" "CRSArrTime" "ArrTime"
## [43] "ArrDelay" "ArrDelayMinutes" "ArrDel15"
## [46] "ArrivalDelayGroups" "ArrTimeBlk" "Cancelled"
## [49] "CancellationCode" "Diverted" "CRSElapsedTime"
## [52] "ActualElapsedTime" "AirTime" "Flights"
## [55] "Distance" "DistanceGroup" "CarrierDelay"
## [58] "WeatherDelay" "NASDelay" "SecurityDelay"
## [61] "LateAircraftDelay" "FirstDepTime" "TotalAddGTime"
## [64] "LongestAddGTime" "DivAirportLandings" "DivReachedDest"
## [67] "DivActualElapsedTime" "DivArrDelay" "DivDistance"
## [70] "Div1Airport" "Div1AirportID" "Div1AirportSeqID"
## [73] "Div1WheelsOn" "Div1TotalGTime" "Div1LongestGTime"
## [76] "Div1WheelsOff" "Div1TailNum" "Div2Airport"
## [79] "Div2AirportID" "Div2AirportSeqID" "Div2WheelsOn"
## [82] "Div2TotalGTime" "Div2LongestGTime" "Div2WheelsOff"
## [85] "Div2TailNum" "Div3Airport" "Div3AirportID"
## [88] "Div3AirportSeqID" "Div3WheelsOn" "Div3TotalGTime"
## [91] "Div3LongestGTime" "Div3WheelsOff" "Div3TailNum"
## [94] "Div4Airport" "Div4AirportID" "Div4AirportSeqID"
## [97] "Div4WheelsOn" "Div4TotalGTime" "Div4LongestGTime"
## [100] "Div4WheelsOff" "Div4TailNum" "Div5Airport"
## [103] "Div5AirportID" "Div5AirportSeqID" "Div5WheelsOn"
## [106] "Div5TotalGTime" "Div5LongestGTime" "Div5WheelsOff"
## [109] "Div5TailNum" "X"
avg_delay_by_carrier <- data %>%
group_by(Carrier) %>%
summarise(avg_departure_delay = mean(DepDelay, na.rm = TRUE))
avg_delay_by_carrier
## # A tibble: 18 × 2
## Carrier avg_departure_delay
## <chr> <dbl>
## 1 9E 12.4
## 2 AA 6.93
## 3 AS -2.25
## 4 B6 20.4
## 5 DL 9.74
## 6 EV 13.6
## 7 F9 16.0
## 8 G4 10.4
## 9 HA 1.72
## 10 MQ 8.82
## 11 NK 5.61
## 12 OH 13.8
## 13 OO 15.1
## 14 UA 5.87
## 15 VX 2.83
## 16 WN 8.03
## 17 YV 8.86
## 18 YX 7.26
largest_delay_carrier <- avg_delay_by_carrier %>%
arrange(desc(avg_departure_delay)) %>%
head(1)
largest_delay_carrier
## # A tibble: 1 × 2
## Carrier avg_departure_delay
## <chr> <dbl>
## 1 B6 20.4
##Q5
library(jsonlite)
library(httr)
url <- "https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=100&aggregate=1&toTs=1741281880"
data <- fromJSON(url)
ohlcv_data <- data$Data$Data
close_prices <- ohlcv_data$close
str(close_prices)
## num [1:101] 91904 95958 95670 97511 96474 ...
close_prices <- as.numeric(close_prices)
max_close_price <- max(close_prices, na.rm = TRUE)
max_close_price
## [1] 106155.6