library(tidyr)

4 + 2
2 + sqrt(4)

x <- 3
y <- c(1,2,3)
z <- c(4,5,6)
dat <- cbind(y,z)

mean(x)

y[3]
dat[1,2]
dat[1,]
dat[,1]

plot(dat[,1], dat[,2])

3>4
3==sqrt(9)

dat[dat[,1]>1,]

3==3 & 3==4
3==3 | 3==4

x <- 1:10
x<5
sum(x<5)
mean(x<5)

acs <- rio::import("https://github.com/marctrussler/IDS-Data/raw/main/ACSCountyData.csv", trust=T)

head(acs$population)

acs$population[acs$population>1E7]

which(acs$percent.transit.commute>40)

acs$high.transit <- NA
acs$high.transit[acs$percent.transit.commute>30] <- 1
#Or
acs$high.transit <- acs$percent.transit.commute>30

lubridate::ymd("2020-02-01")

gsub("_","","test_test")
tolower("BBB")
toupper("ccc")

out <- separate(acs, 
                "county.name", 
                into = c("county","extra"), 
                sep=" ")
head(out$county)

dat <- rio::import("https://github.com/marctrussler/IDS-Data/raw/main/WideExample.RDS")
dat
#Wide to Long
dat.l <- pivot_longer(dat,cols=date_1_1_2021:date_1_4_2021,
                      names_to = "date",
                      values_to = "covid.cases")
dat.l
#Long to Wide 1
pivot_wider(dat.l,
             names_from="county",
             values_from="covid.cases")
#Long to Wide 2
pivot_wider(dat.l,
             names_from="date",
             values_from="covid.cases")

table(duplicated(acs$county.name))
table(nchar(acs$county.fips))

#Scatterplots
plot(acs$percent.white, acs$median.income, 
     main="County Race and Income",
     xlab = "Percent White",
     ylab="Median Income")

#Boxplots
boxplot(acs$median.income, outline=F)
boxplot(acs$median.income ~ acs$census.region, outline=F)

#Density plots
plot(density(acs$median.income[acs$census.region=="south"],na.rm=T), col="firebrick",
     main="Distribution of County Median Income, by Region ")
points(density(acs$median.income[!acs$census.region=="south"],na.rm=T), type="l", col="forestgreen")
legend("topright", c("South","Non-South"), lty=c(1,1), col=c("firebrick","forestgreen"))

#Correlation
cor(acs$median.income, acs$percent.white, 
    use="pairwise.complete")

state <- unique(acs$state.abbr)
avg.poverty <- rep(NA, length(state))
avg.income <- rep(NA, length(state))

for(i in 1:length(state)){
 avg.poverty[i] <- mean(acs$percent.adult.poverty[acs$state.abbr==state[i]], na.rm=T) 
 avg.income[i] <- mean(acs$median.income[acs$state.abbr==state[i]], na.rm=T) 
}

plot(avg.income, avg.poverty, main="Income Level vs. Poverty Rates", 
     ylab="Average Median Income", xlab = "Percent Adults in Poverty", 
     type="n")
text(avg.income, avg.poverty, labels = state)


#What is each counties income level as a percent of it's state average?

acs$rel.income <- NA

for(i in 1:length(state)){
  acs$rel.income[acs$state.abbr==state[i]] <- acs$median.income[acs$state.abbr==state[i]]/mean(acs$median.income[acs$state.abbr==state[i]],na.rm=T)
}
 
summary(acs$rel.income)
 

#What is probability of getting dealt two aces?
#There are 52 cards in the deck and 4 aces
deck <- c(rep("NotAce",48), rep("Ace",4))

#One draw of two cards, check if all equal Ace
draw <- sample(deck, 2, replace=F)
draw=="Ace"
all(draw=="Ace")

#Simulate:
result <- NA
for(i in 1:100000){
draw <- sample(deck, 2, replace=F)
result[i] <- all(draw=="Ace")
}

mean(result)

#Half a percent chance
