#1

data(cars)
median(cars[, 1])
[1] 15

#2

# install.packages("jsonlite")
library(jsonlite)
url <- "https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=99"
data_url <- fromJSON(url)
close_prices <- data_url$Data$Data$close
maximum_close <- max(close_prices)
print(maximum_close)
[1] 69020.94

#3 #1) Project Title: College Salary

#2) Research Questions: # Does the college you attend significantly impact your salary? # Does your undergraduate major influence your salary? # What is the relationship between college type, region, and salary growth?

#3) Relevant Data Sources: #Kaggle: Wall Street Journal / PayScale Inc. Data: #salaries-by-college-type.csv #salaries-by-region.csv #degrees-that-pay-back.csv

#4&5) Code: Data Extraction and Preliminary Descriptive Analysis and Data Cleaning

# Load necessary library
library(readr)

# Load datasets
salaries_by_college_type <- read_csv("salaries-by-college-type.csv")
Rows: 269 Columns: 8
── Column specification ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (8): School Name, School Type, Starting Median Salary, Mid-Career Median Salary, Mid-Career 10th Percentile Salary, Mid-Career 25th Percentile Salary, Mid-Career 75th Percentile Salary...

ℹ 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.
print(head(salaries_by_college_type))
summary(salaries_by_college_type)
 School Name        School Type        Starting Median Salary Mid-Career Median Salary Mid-Career 10th Percentile Salary Mid-Career 25th Percentile Salary Mid-Career 75th Percentile Salary
 Length:269         Length:269         Length:269             Length:269               Length:269                        Length:269                        Length:269                       
 Class :character   Class :character   Class :character       Class :character         Class :character                  Class :character                  Class :character                 
 Mode  :character   Mode  :character   Mode  :character       Mode  :character         Mode  :character                  Mode  :character                  Mode  :character                 
 Mid-Career 90th Percentile Salary
 Length:269                       
 Class :character                 
 Mode  :character                 
salaries_by_region <- read_csv("salaries-by-region.csv")
Rows: 320 Columns: 8
── Column specification ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (8): School Name, Region, Starting Median Salary, Mid-Career Median Salary, Mid-Career 10th Percentile Salary, Mid-Career 25th Percentile Salary, Mid-Career 75th Percentile Salary, Mid...

ℹ 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.
print(head(salaries_by_region))
summary(salaries_by_region)
 School Name           Region          Starting Median Salary Mid-Career Median Salary Mid-Career 10th Percentile Salary Mid-Career 25th Percentile Salary Mid-Career 75th Percentile Salary
 Length:320         Length:320         Length:320             Length:320               Length:320                        Length:320                        Length:320                       
 Class :character   Class :character   Class :character       Class :character         Class :character                  Class :character                  Class :character                 
 Mode  :character   Mode  :character   Mode  :character       Mode  :character         Mode  :character                  Mode  :character                  Mode  :character                 
 Mid-Career 90th Percentile Salary
 Length:320                       
 Class :character                 
 Mode  :character                 
degrees_that_pay_back <- read_csv("degrees-that-pay-back.csv")
Rows: 50 Columns: 8
── Column specification ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (7): Undergraduate Major, Starting Median Salary, Mid-Career Median Salary, Mid-Career 10th Percentile Salary, Mid-Career 25th Percentile Salary, Mid-Career 75th Percentile Salary, Mid...
dbl (1): Percent change from Starting to Mid-Career Salary

ℹ 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.
print(head(degrees_that_pay_back))
summary(degrees_that_pay_back)
 Undergraduate Major Starting Median Salary Mid-Career Median Salary Percent change from Starting to Mid-Career Salary Mid-Career 10th Percentile Salary Mid-Career 25th Percentile Salary
 Length:50           Length:50              Length:50                Min.   : 23.40                                    Length:50                         Length:50                        
 Class :character    Class :character       Class :character         1st Qu.: 59.12                                    Class :character                  Class :character                 
 Mode  :character    Mode  :character       Mode  :character         Median : 67.80                                    Mode  :character                  Mode  :character                 
                                                                     Mean   : 69.27                                                                                                       
                                                                     3rd Qu.: 82.42                                                                                                       
                                                                     Max.   :103.50                                                                                                       
 Mid-Career 75th Percentile Salary Mid-Career 90th Percentile Salary
 Length:50                         Length:50                        
 Class :character                  Class :character                 
 Mode  :character                  Mode  :character                 
                                                                    
                                                                    
                                                                    
# Check for missing values
colSums(is.na(college_type))
                      School Name                       School Type            Starting Median Salary          Mid-Career Median Salary Mid-Career 10th Percentile Salary 
                                0                                 0                                 0                                 0                                 0 
Mid-Career 25th Percentile Salary Mid-Career 75th Percentile Salary Mid-Career 90th Percentile Salary 
                                0                                 0                                 0 
colSums(is.na(region))
                      School Name                            Region            Starting Median Salary          Mid-Career Median Salary Mid-Career 10th Percentile Salary 
                                0                                 0                                 0                                 0                                 0 
Mid-Career 25th Percentile Salary Mid-Career 75th Percentile Salary Mid-Career 90th Percentile Salary 
                                0                                 0                                 0 
colSums(is.na(majors))
                              Undergraduate Major                            Starting Median Salary                          Mid-Career Median Salary 
                                                0                                                 0                                                 0 
Percent change from Starting to Mid-Career Salary                 Mid-Career 10th Percentile Salary                 Mid-Career 25th Percentile Salary 
                                                0                                                 0                                                 0 
                Mid-Career 75th Percentile Salary                 Mid-Career 90th Percentile Salary 
                                                0                                                 0 

#6) Future Data Preparation: # Data Visualization: Create plots to show the differences in salaries by college type and region. # Prediction Models: Use regression analysis to predict mid-career salary based on starting salary, region, and major. # Further Cleaning: Standardize column names and formats across datasets for smooth merging.

#4 Extra Credit

# install.packages("tidyverse")
library(tidyverse)

data <- mtcars 
tidy_cars <- data %>% select(mpg, wt, hp)  
print(head(tidy_cars))  

model_1 <- lm(mpg ~ wt + hp, data = mtcars) 
print(summary(model_1)) 

Call:
lm(formula = mpg ~ wt + hp, data = mtcars)

Residuals:
   Min     1Q Median     3Q    Max 
-3.941 -1.600 -0.182  1.050  5.854 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 37.22727    1.59879  23.285  < 2e-16 ***
wt          -3.87783    0.63273  -6.129 1.12e-06 ***
hp          -0.03177    0.00903  -3.519  0.00145 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.593 on 29 degrees of freedom
Multiple R-squared:  0.8268,    Adjusted R-squared:  0.8148 
F-statistic: 69.21 on 2 and 29 DF,  p-value: 9.109e-12
ggplot(tidy_cars, aes(x = wt, y = mpg)) +
  geom_point() +  
  geom_smooth(method = "lm", se = FALSE, color = "blue") +  
  labs(title = "Car Weight vs MPG", x = "Weight (1000 lbs)", y = "MPG")
`geom_smooth()` using formula = 'y ~ x'

LS0tCnRpdGxlOiAiQWxleCBTY2FyYW11enppbm8gTWluaSBQcm9qZWN0IEkiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KIzEKYGBge3J9CmRhdGEoY2FycykKbWVkaWFuKGNhcnNbLCAxXSkKYGBgCgojMgpgYGB7cn0KIyBpbnN0YWxsLnBhY2thZ2VzKCJqc29ubGl0ZSIpCmxpYnJhcnkoanNvbmxpdGUpCnVybCA8LSAiaHR0cHM6Ly9taW4tYXBpLmNyeXB0b2NvbXBhcmUuY29tL2RhdGEvdjIvaGlzdG9kYXk/ZnN5bT1CVEMmdHN5bT1VU0QmbGltaXQ9OTkiCmRhdGFfdXJsIDwtIGZyb21KU09OKHVybCkKY2xvc2VfcHJpY2VzIDwtIGRhdGFfdXJsJERhdGEkRGF0YSRjbG9zZQptYXhpbXVtX2Nsb3NlIDwtIG1heChjbG9zZV9wcmljZXMpCnByaW50KG1heGltdW1fY2xvc2UpCmBgYAoKIzMKIzEpIFByb2plY3QgVGl0bGU6IENvbGxlZ2UgU2FsYXJ5CgojMikgUmVzZWFyY2ggUXVlc3Rpb25zOgojIERvZXMgdGhlIGNvbGxlZ2UgeW91IGF0dGVuZCBzaWduaWZpY2FudGx5IGltcGFjdCB5b3VyIHNhbGFyeT8KIyBEb2VzIHlvdXIgdW5kZXJncmFkdWF0ZSBtYWpvciBpbmZsdWVuY2UgeW91ciBzYWxhcnk/CiMgV2hhdCBpcyB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gY29sbGVnZSB0eXBlLCByZWdpb24sIGFuZCBzYWxhcnkgZ3Jvd3RoPwoKIzMpIFJlbGV2YW50IERhdGEgU291cmNlczoKI0thZ2dsZTogV2FsbCBTdHJlZXQgSm91cm5hbCAvIFBheVNjYWxlIEluYy4gRGF0YToKI3NhbGFyaWVzLWJ5LWNvbGxlZ2UtdHlwZS5jc3YKI3NhbGFyaWVzLWJ5LXJlZ2lvbi5jc3YKI2RlZ3JlZXMtdGhhdC1wYXktYmFjay5jc3YKICAgIAojNCY1KSBDb2RlOiBEYXRhIEV4dHJhY3Rpb24gYW5kIFByZWxpbWluYXJ5IERlc2NyaXB0aXZlIEFuYWx5c2lzIGFuZCBEYXRhIENsZWFuaW5nCmBgYHtyfQojIExvYWQgbmVjZXNzYXJ5IGxpYnJhcnkKbGlicmFyeShyZWFkcikKCiMgTG9hZCBkYXRhc2V0cwpzYWxhcmllc19ieV9jb2xsZWdlX3R5cGUgPC0gcmVhZF9jc3YoInNhbGFyaWVzLWJ5LWNvbGxlZ2UtdHlwZS5jc3YiKQpwcmludChoZWFkKHNhbGFyaWVzX2J5X2NvbGxlZ2VfdHlwZSkpCnN1bW1hcnkoc2FsYXJpZXNfYnlfY29sbGVnZV90eXBlKQoKc2FsYXJpZXNfYnlfcmVnaW9uIDwtIHJlYWRfY3N2KCJzYWxhcmllcy1ieS1yZWdpb24uY3N2IikKcHJpbnQoaGVhZChzYWxhcmllc19ieV9yZWdpb24pKQpzdW1tYXJ5KHNhbGFyaWVzX2J5X3JlZ2lvbikKCmRlZ3JlZXNfdGhhdF9wYXlfYmFjayA8LSByZWFkX2NzdigiZGVncmVlcy10aGF0LXBheS1iYWNrLmNzdiIpCnByaW50KGhlYWQoZGVncmVlc190aGF0X3BheV9iYWNrKSkKc3VtbWFyeShkZWdyZWVzX3RoYXRfcGF5X2JhY2spCgojIENoZWNrIGZvciBtaXNzaW5nIHZhbHVlcwpjb2xTdW1zKGlzLm5hKGNvbGxlZ2VfdHlwZSkpCmNvbFN1bXMoaXMubmEocmVnaW9uKSkKY29sU3Vtcyhpcy5uYShtYWpvcnMpKQoKYGBgCiM2KSBGdXR1cmUgRGF0YSBQcmVwYXJhdGlvbjoKIyBEYXRhIFZpc3VhbGl6YXRpb246IENyZWF0ZSBwbG90cyB0byBzaG93IHRoZSBkaWZmZXJlbmNlcyBpbiBzYWxhcmllcyBieSBjb2xsZWdlIHR5cGUgYW5kIHJlZ2lvbi4KIyBQcmVkaWN0aW9uIE1vZGVsczogVXNlIHJlZ3Jlc3Npb24gYW5hbHlzaXMgdG8gcHJlZGljdCBtaWQtY2FyZWVyIHNhbGFyeSBiYXNlZCBvbiBzdGFydGluZyBzYWxhcnksIHJlZ2lvbiwgYW5kIG1ham9yLgojIEZ1cnRoZXIgQ2xlYW5pbmc6IFN0YW5kYXJkaXplIGNvbHVtbiBuYW1lcyBhbmQgZm9ybWF0cyBhY3Jvc3MgZGF0YXNldHMgZm9yIHNtb290aCBtZXJnaW5nLgoKCiM0IEV4dHJhIENyZWRpdApgYGB7cn0KIyBpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKCmRhdGEgPC0gbXRjYXJzIAp0aWR5X2NhcnMgPC0gZGF0YSAlPiUgc2VsZWN0KG1wZywgd3QsIGhwKSAgCnByaW50KGhlYWQodGlkeV9jYXJzKSkgIAoKbW9kZWxfMSA8LSBsbShtcGcgfiB3dCArIGhwLCBkYXRhID0gbXRjYXJzKSAKcHJpbnQoc3VtbWFyeShtb2RlbF8xKSkgCgpnZ3Bsb3QodGlkeV9jYXJzLCBhZXMoeCA9IHd0LCB5ID0gbXBnKSkgKwogIGdlb21fcG9pbnQoKSArICAKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBzZSA9IEZBTFNFLCBjb2xvciA9ICJibHVlIikgKyAgCiAgbGFicyh0aXRsZSA9ICJDYXIgV2VpZ2h0IHZzIE1QRyIsIHggPSAiV2VpZ2h0ICgxMDAwIGxicykiLCB5ID0gIk1QRyIpCgpgYGAKCg==