Cleaned up code. Made data center match others

This commit is contained in:
alex 2026-10-02 14:49:17 -06:00
parent bbeb1b3f2e
commit d489b2c0e3
3 changed files with 68 additions and 120 deletions

View File

@ -4,7 +4,6 @@ library(janitor)
library(paletteer) library(paletteer)
source("Scripts/Return_Data_Center_Model_Inputs.r") source("Scripts/Return_Data_Center_Model_Inputs.r")
DATA_CENTER <- DATA_CENTER_INPUTS() DATA_CENTER <- DATA_CENTER_INPUTS()
DATA_CENTER %>% filter(Year==2028,Event=='COMPUTERS')
DATA_CENTER <- rbind(DATA_CENTER,do.call(rbind, lapply(2031:2050,function(x){DATA_CENTER %>% filter(Year==2030) %>% mutate(Year=x)}))) DATA_CENTER <- rbind(DATA_CENTER,do.call(rbind, lapply(2031:2050,function(x){DATA_CENTER %>% filter(Year==2030) %>% mutate(Year=x)})))
GET_DATA_CENTER_RES <- function(DIR,EVENT,REGION='Wyoming'){ GET_DATA_CENTER_RES <- function(DIR,EVENT,REGION='Wyoming'){
# DIR<-"Data_Center_Employment_100_People" # DIR<-"Data_Center_Employment_100_People"
@ -57,27 +56,23 @@ IMPLAN_DOLLAR <- IMPLAN_DOLLAR %>% group_by(Type,Year,Impact,Source) %>% mutat
IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% c("County","State") & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY',"value"] <- 0 IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% c("County","State") & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY',"value"] <- 0
TEMP <- IMPLAN_DOLLAR %>% filter(Year==2028) %>% mutate(value=0) #TEMP <- IMPLAN_DOLLAR %>% filter(Year==2028) %>% mutate(value=0)
IMPLAN_DOLLAR <- rbind(IMPLAN_DOLLAR,rbind(TEMP %>% mutate(Year=2025),TEMP %>% mutate(Year=2026),TEMP %>% mutate(Year=2027))) #IMPLAN_DOLLAR <- rbind(IMPLAN_DOLLAR,rbind(TEMP %>% mutate(Year=2025),TEMP %>% mutate(Year=2026),TEMP %>% mutate(Year=2027)))
TAX_STATE_BASE <- 500*(10^6*0.115*((62.835-12)/1000)) #State TAX_STATE_BASE <- 500*(10^6*0.115*((62.835-12)/1000)) #State
TAX_COUNTY_BASE <-500*(10^6*0.115*((12)/1000)) #County TAX_COUNTY_BASE <-500*(10^6*0.115*((12)/1000)) #County
IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% c("County") & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY',] IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% c("County") & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY',]
DIRECT_TAX_FLOW <- (c(seq(0,1,by=1/3),rev(seq(0,1,by=1/40))))[1:28] DIRECT_TAX_FLOW <- (c(seq(0,1,by=1/3),rev(seq(0,1,by=1/40))))[1:25]
IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% c("County") & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY','value'] <- DIRECT_TAX_FLOW *TAX_COUNTY_BASE IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% c("County") & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY','value'] <- DIRECT_TAX_FLOW *TAX_COUNTY_BASE
IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% c("State") & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY','value'] <- DIRECT_TAX_FLOW *TAX_STATE_BASE IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% c("State") & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY','value'] <- DIRECT_TAX_FLOW *TAX_STATE_BASE
IMPLAN_DOLLAR[IMPLAN_DOLLAR$Impact %in% "State" & IMPLAN_DOLLAR$Type=='Direct'& IMPLAN_DOLLAR$Region=='WY',]
IMPLAN_DOLLAR %>% pull(Year) %>% unique %>% length
IMPLAN_DOLLAR <- IMPLAN_DOLLAR %>% filter(!(Impact %in% c("Sub County Special Districts","Sub County County General"))) IMPLAN_DOLLAR <- IMPLAN_DOLLAR %>% filter(!(Impact %in% c("Sub County Special Districts","Sub County County General")))
IMPLAN_DOLLAR %>% pull(Impact) %>% unique
IMPLAN_DOLLAR %>% filter(is.na(Impact))
IMPLAN_DOLLAR$Impact <- factor(IMPLAN_DOLLAR$Impact,levels=c('Output','Value Added','Income','Federal','State','County'))
IMPLAN_DOLLAR$Region <- factor(ifelse(IMPLAN_DOLLAR$Region=="WY",'Wyoming',"Rest of United States"),levels=rev(c("Wyoming","Rest of United States"))) IMPLAN_DOLLAR$Region <- factor(ifelse(IMPLAN_DOLLAR$Region=="WY",'Wyoming',"Rest of United States"),levels=rev(c("Wyoming","Rest of United States")))
IMPLAN_DOLLAR_REGION <- IMPLAN_DOLLAR %>% filter(Impact %in% c('Income','Output','Value Added')) %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup IMPLAN_DOLLAR_REGION <- IMPLAN_DOLLAR %>% filter(Impact %in% c('Income','Output','Value Added')) %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup
IMPLAN_DOLLAR %>% filter(is.na(Impact))
########################Plot of total impact in US and in Wyoming ########################Plot of total impact in US and in Wyoming
IMPLAN_REGION_DOLLAR_PLOT <- ggplot(IMPLAN_DOLLAR_REGION ,aes(x=Year,y=value/10^9,fill=Region,group=Region))+geom_area()+facet_wrap(~Impact,ncol=1)+ylab("Billion Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=1)) IMPLAN_REGION_DOLLAR_PLOT <- ggplot(IMPLAN_DOLLAR_REGION ,aes(x=Year,y=value/10^9,fill=Region,group=Region))+geom_area()+facet_wrap(~Impact,ncol=1)+ylab("Billion Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=1))
ggsave( filename = "./Results/Data Center: Dollar Values of Model.png", plot = IMPLAN_REGION_DOLLAR_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300) ggsave( filename = "./Results/Data Center: Dollar Values of Model.png", plot = IMPLAN_REGION_DOLLAR_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
@ -91,34 +86,63 @@ IMPLAN_TAX$Impact <- ifelse(IMPLAN_TAX$Impact =='State',"Wyoming State Taxes",IM
IMPLAN_TAX$Impact <- ifelse(IMPLAN_TAX$Impact =='County',"Wyoming County Taxes",IMPLAN_TAX$Impact) IMPLAN_TAX$Impact <- ifelse(IMPLAN_TAX$Impact =='County',"Wyoming County Taxes",IMPLAN_TAX$Impact)
IMPLAN_TAX$Impact <- factor(IMPLAN_TAX$Impact,levels=c('Output','Value Added','Income','Federal','Other States','Wyoming State Taxes','Wyoming County Taxes')) IMPLAN_TAX$Impact <- factor(IMPLAN_TAX$Impact,levels=c('Output','Value Added','Income','Federal','Other States','Wyoming State Taxes','Wyoming County Taxes'))
#IMPLAN_TAX <- IMPLAN_TAX[!(IMPLAN_TAX$Type=='Direct' & IMPLAN_TAX$Region=='Rest of United States'& IMPLAN_TAX$Impact!='Federal'),] #IMPLAN_TAX <- IMPLAN_TAX[!(IMPLAN_TAX$Type=='Direct' & IMPLAN_TAX$Region=='Rest of United States'& IMPLAN_TAX$Impact!='Federal'),]
#IMPLAN_TAX <-IMPLAN_TAX[!(IMPLAN_TAX$Type=='Direct' & IMPLAN_TAX$Region=='Wyoming'& IMPLAN_TAX$Impact=='Federal'),] #IMPLAN_TAX <-IMPLAN_TAX[!(IMPLAN_TAX$Type=='Direct' & IMPLAN_TAX$Region=='Wyoming'& IMPLAN_TAX$Impact=='Federal'),]
IMPLAN_DOLLAR <- IMPLAN_DOLLAR %>% filter(!(Impact %in% c("County","State","Federal","Other States"))) %>% rbind(IMPLAN_TAX) IMPLAN_DOLLAR <- IMPLAN_DOLLAR %>% filter(!(Impact %in% c("County","State","Federal","Other States"))) %>% rbind(IMPLAN_TAX)
IMPLAN_TAX_FIG_DATA <- IMPLAN_TAX %>% group_by(Year,Impact) %>% summarize(value=sum(value)) %>% ungroup IMPLAN_TAX_FIG_DATA <- IMPLAN_TAX %>% group_by(Year,Impact) %>% summarize(value=sum(value)) %>% ungroup
IMPLAN_TAX %>% filter(Impact=='Other States',Type=='Direct',value>0)
#TAX_PLOT <- ggplot(IMPLAN_TAX_FIG_DATA, aes(x=Year,y=value/10^6,fill=Impact,group=Impact))+geom_area()+ylab("Million Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425","#492F24"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=50))
TAX_PLOT <- ggplot(IMPLAN_TAX_FIG_DATA, aes(x=Year,y=value/10^6,fill=Impact,group=Impact))+geom_area()+ylab("Million Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","firebrick","#FFC425","#492F24"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=50)) TAX_PLOT <- ggplot(IMPLAN_TAX_FIG_DATA, aes(x=Year,y=value/10^6,fill=Impact,group=Impact))+geom_area()+ylab("Million Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","firebrick","#FFC425","#492F24"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=50))
ggsave( filename = "./Results/Data Center: Tax Model.png", plot = TAX_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
#############Dollar values table #############Dollar values table
NPV <- IMPLAN_DOLLAR %>% mutate(value=value/10^9,Discount_0=value,Discount_2=value/(1+0.02)^(Year-2028),Discount_5=value/(1+0.05)^(Year-2028),Discount_10=value/(1+0.1)^(Year-2028)) %>% group_by(Impact,Region) %>% summarize(Discount_0=sum(Discount_0),Discount_2=sum(Discount_2),Discount_5=sum(Discount_5),Discount_10=sum(Discount_10)) %>% ungroup NPV <- IMPLAN_DOLLAR %>% mutate(value=value/10^9,Discount_0=value,Discount_2=value/(1+0.02)^(Year-2026),Discount_5=value/(1+0.05)^(Year-2026),Discount_10=value/(1+0.1)^(Year-2026)) %>% group_by(Impact,Region) %>% summarize(Discount_0=sum(Discount_0),Discount_2=sum(Discount_2),Discount_5=sum(Discount_5),Discount_10=sum(Discount_10)) %>% ungroup
NPV[,3:6] <-round(NPV[,3:6],2) NPV[,3:6] <-round(NPV[,3:6],2)
write.csv(NPV,"./Results/Data_Center_NPV_Values.csv",row.names=FALSE) NPV
WY_NPV <- cbind(c("Discount","0%","2%","5%","10%"),NPV %>% filter(Region=='Wyoming') %>% select(-Region) %>% t) %>% as_tibble
colnames(WY_NPV ) <- WY_NPV[1,]
WY_NPV <- WY_NPV[-1,]
WY_NPV <- WY_NPV %>% mutate_if(is.character, str_trim)
WY_NPV[,-1] <- lapply( lapply(WY_NPV[,-1] ,as.numeric) %>% as_tibble,dollar) %>% as_tibble
WY_TAX <- WY_NPV[,c(1,5:7)]
WY_NPV <- WY_NPV[,c(1:4)]
#US
US_NPV <- cbind(c("Discount","0%","2%","5%","10%"),NPV %>% filter(Region!='Wyoming') %>% select(-Region) %>% t) %>% as_tibble
colnames(US_NPV ) <- US_NPV[1,]
US_NPV <- US_NPV[-1,]
US_NPV <- US_NPV %>% mutate_if(is.character, str_trim)
US_NPV[,-1] <- lapply( lapply(US_NPV[,-1] ,as.numeric) %>% as_tibble,dollar) %>% as_tibble
US_TAX <- US_NPV[,c(1,5:6)]
US_NPV <- US_NPV[,c(1:4)]
ALL_TAX <- US_TAX
ALL_TAX[,2] <- dollar(parse_number(as.character(US_TAX[,2] %>% t))+ parse_number(as.character(WY_TAX[,2] %>% t)))
ALL_TAX <- cbind(ALL_TAX,WY_TAX[,-1:-2])
#write.csv(US_TAX,"./Results/US_Tax_Values.csv",row.names=FALSE)
############Employment ############Employment
IMPLAN_EMPLOY <- IMPLAN %>% filter(Impact=='Employment',Source=='IMPLAN') %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup IMPLAN_EMPLOY <- IMPLAN %>% filter(Impact=='Employment',Source=='IMPLAN') %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup
IMPLAN_EMPLOY <- IMPLAN_EMPLOY %>% group_by(Year,Impact) %>% mutate(value=ifelse(Region=='US',value-min(value),value) ) %>% ungroup IMPLAN_EMPLOY <- IMPLAN_EMPLOY %>% group_by(Year,Impact) %>% mutate(value=ifelse(Region=='US',value-min(value),value) ) %>% ungroup
#TEMP <- IMPLAN_EMPLOY %>% filter(Year==2028) %>% mutate(value=0)
#IMPLAN_EMPLOY <- rbind(IMPLAN_EMPLOY,rbind(TEMP %>% mutate(Year=2025),TEMP %>% mutate(Year=2026),TEMP %>% mutate(Year=2027)))
IMPLAN_EMPLOY$Region <- factor(ifelse(IMPLAN_EMPLOY$Region=="WY",'Wyoming',"Rest of United States"),levels=rev(c("Wyoming","Rest of United States"))) IMPLAN_EMPLOY$Region <- factor(ifelse(IMPLAN_EMPLOY$Region=="WY",'Wyoming',"Rest of United States"),levels=rev(c("Wyoming","Rest of United States")))
IMPLAN_EMPLOYMENT_PLOT <- ggplot(IMPLAN_EMPLOY ,aes(x=Year,y=value,fill=Region,group=Region))+geom_area()+ylab("Employment (Full-Time Equivalent)")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=c(seq(0,50000,by=1000)),labels = label_comma()) IMPLAN_EMPLOYMENT_PLOT <- ggplot(IMPLAN_EMPLOY ,aes(x=Year,y=value,fill=Region,group=Region))+geom_area()+ylab("Employment (Full-Time Equivalent)")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=c(seq(0,50000,by=1000)),labels = label_comma())
IMPLAN_EMPLOYMENT_PLOT
ggsave( filename = "./Results/Data Center: Employment.png", plot = IMPLAN_EMPLOYMENT_PLOT , width = 8.5, height = 11*(2/4), units = "in", dpi = 600)
############Save results
HEADER <- "Data Center: "
write.csv(WY_NPV,paste0("./Results/",HEADER,"Wyoming_NPV_Values.csv"),row.names=FALSE)
write.csv(US_NPV,paste0("./Results/",HEADER,"US_NPV_Values.csv"),row.names=FALSE)
write.csv(NPV,paste0("./Results/",HEADER,"NPV_Values.csv"),row.names=FALSE)
write.csv(ALL_TAX,paste0("./Results/",HEADER,"Tax_Values.csv"),row.names=FALSE)
ggsave( filename = paste0("./Results/",HEADER,"Dollar Values of Model.png"), plot = IMPLAN_REGION_DOLLAR_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
ggsave( filename = paste0("./Results/",HEADER,"Tax Model.png"), plot = TAX_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
ggsave( filename = paste0("./Results/",HEADER,"Employment.png"), plot = IMPLAN_EMPLOYMENT_PLOT , width = 8.5, height = 11*(2/4), units = "in", dpi = 600)

View File

@ -6,6 +6,7 @@ dir.create("Results", showWarnings = FALSE)
source("Scripts/Load_IMPLAN.r") source("Scripts/Load_IMPLAN.r")
SINGLE <- FALSE SINGLE <- FALSE
OUTPUT_RES <- function(SINGLE=FALSE){
IMPLAN <- GET_IMPLAN_DATA(SINGLE) IMPLAN <- GET_IMPLAN_DATA(SINGLE)
@ -20,7 +21,6 @@ IMPLAN_DOLLAR_REGION <- IMPLAN_DOLLAR %>% filter(Impact %in% c('Income','Output'
########################Plot of total impact in US and in Wyoming ########################Plot of total impact in US and in Wyoming
IMPLAN_REGION_DOLLAR_PLOT <- ggplot(IMPLAN_DOLLAR_REGION ,aes(x=Year,y=value/10^9,fill=Region,group=Region))+geom_area()+facet_wrap(~Impact,ncol=1)+ylab("Billion Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=1)) IMPLAN_REGION_DOLLAR_PLOT <- ggplot(IMPLAN_DOLLAR_REGION ,aes(x=Year,y=value/10^9,fill=Region,group=Region))+geom_area()+facet_wrap(~Impact,ncol=1)+ylab("Billion Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=1))
ggsave( filename = "./Results/Dollar Values of Model.png", plot = IMPLAN_REGION_DOLLAR_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
########################Taxes ########################Taxes
IMPLAN_TAX <- IMPLAN_DOLLAR %>% filter(Impact %in% c("County","State","Federal")) IMPLAN_TAX <- IMPLAN_DOLLAR %>% filter(Impact %in% c("County","State","Federal"))
OLD <- IMPLAN_TAX OLD <- IMPLAN_TAX
@ -38,7 +38,6 @@ IMPLAN_TAX_FIG_DATA <- IMPLAN_TAX %>% group_by(Year,Impact) %>% summarize(value
TAX_PLOT <- ggplot(IMPLAN_TAX_FIG_DATA, aes(x=Year,y=value/10^6,fill=Impact,group=Impact))+geom_area()+ylab("Million Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","firebrick","#FFC425","#492F24"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=50)) TAX_PLOT <- ggplot(IMPLAN_TAX_FIG_DATA, aes(x=Year,y=value/10^6,fill=Impact,group=Impact))+geom_area()+ylab("Million Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","firebrick","#FFC425","#492F24"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=50))
ggsave( filename = "./Results/Tax Model.png", plot = TAX_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
#############Dollar values table #############Dollar values table
NPV <- IMPLAN_DOLLAR %>% mutate(value=value/10^9,Discount_0=value,Discount_2=value/(1+0.02)^(Year-2028),Discount_5=value/(1+0.05)^(Year-2028),Discount_10=value/(1+0.1)^(Year-2028)) %>% group_by(Impact,Region) %>% summarize(Discount_0=sum(Discount_0),Discount_2=sum(Discount_2),Discount_5=sum(Discount_5),Discount_10=sum(Discount_10)) %>% ungroup NPV <- IMPLAN_DOLLAR %>% mutate(value=value/10^9,Discount_0=value,Discount_2=value/(1+0.02)^(Year-2028),Discount_5=value/(1+0.05)^(Year-2028),Discount_10=value/(1+0.1)^(Year-2028)) %>% group_by(Impact,Region) %>% summarize(Discount_0=sum(Discount_0),Discount_2=sum(Discount_2),Discount_5=sum(Discount_5),Discount_10=sum(Discount_10)) %>% ungroup
NPV[,3:6] <-round(NPV[,3:6],2) NPV[,3:6] <-round(NPV[,3:6],2)
@ -50,8 +49,6 @@ WY_NPV[,-1] <- lapply( lapply(WY_NPV[,-1] ,as.numeric) %>% as_tibble,dollar) %>%
WY_TAX <- WY_NPV[,c(1,5:7)] WY_TAX <- WY_NPV[,c(1,5:7)]
WY_NPV <- WY_NPV[,c(1:4)] WY_NPV <- WY_NPV[,c(1:4)]
write.csv(WY_NPV,"./Results/Wyoming_NPV_Values.csv",row.names=FALSE)
#write.csv(WY_TAX,"./Results/Wyoming_Tax_Values.csv",row.names=FALSE)
#US #US
US_NPV <- cbind(c("Discount","0%","2%","5%","10%"),NPV %>% filter(Region!='Wyoming') %>% select(-Region) %>% t) %>% as_tibble US_NPV <- cbind(c("Discount","0%","2%","5%","10%"),NPV %>% filter(Region!='Wyoming') %>% select(-Region) %>% t) %>% as_tibble
@ -65,13 +62,9 @@ ALL_TAX <- US_TAX
ALL_TAX[,2] <- dollar(parse_number(as.character(US_TAX[,2] %>% t))+ parse_number(as.character(WY_TAX[,2] %>% t))) ALL_TAX[,2] <- dollar(parse_number(as.character(US_TAX[,2] %>% t))+ parse_number(as.character(WY_TAX[,2] %>% t)))
ALL_TAX <- cbind(ALL_TAX,WY_TAX[,-1:-2]) ALL_TAX <- cbind(ALL_TAX,WY_TAX[,-1:-2])
WY_TAX %>% mutate(Federal=as.numeric(Federal))
write.csv(US_NPV,"./Results/US_NPV_Values.csv",row.names=FALSE)
#write.csv(US_TAX,"./Results/US_Tax_Values.csv",row.names=FALSE) #write.csv(US_TAX,"./Results/US_Tax_Values.csv",row.names=FALSE)
write.csv(NPV,"./Results/NPV_Values.csv",row.names=FALSE)
write.csv(ALL_TAX,"./Results/Tax_Values.csv",row.names=FALSE)
############Employment ############Employment
IMPLAN_EMPLOY <- IMPLAN %>% filter(Impact=='Employment',Source=='IMPLAN') %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup IMPLAN_EMPLOY <- IMPLAN %>% filter(Impact=='Employment',Source=='IMPLAN') %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup
@ -83,6 +76,22 @@ IMPLAN_EMPLOY <- rbind(IMPLAN_EMPLOY,rbind(TEMP %>% mutate(Year=2025),TEMP %>% m
IMPLAN_EMPLOY$Region <- factor(ifelse(IMPLAN_EMPLOY$Region=="WY",'Wyoming',"Rest of United States"),levels=rev(c("Wyoming","Rest of United States"))) IMPLAN_EMPLOY$Region <- factor(ifelse(IMPLAN_EMPLOY$Region=="WY",'Wyoming',"Rest of United States"),levels=rev(c("Wyoming","Rest of United States")))
IMPLAN_EMPLOYMENT_PLOT <- ggplot(IMPLAN_EMPLOY ,aes(x=Year,y=value,fill=Region,group=Region))+geom_area()+ylab("Employment (Full-Time Equivalent)")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=c(seq(0,50000,by=1000)),labels = label_comma()) IMPLAN_EMPLOYMENT_PLOT <- ggplot(IMPLAN_EMPLOY ,aes(x=Year,y=value,fill=Region,group=Region))+geom_area()+ylab("Employment (Full-Time Equivalent)")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=c(seq(0,50000,by=1000)),labels = label_comma())
IMPLAN_EMPLOYMENT_PLOT
ggsave( filename = "./Results/Employment.png", plot = IMPLAN_EMPLOYMENT_PLOT , width = 8.5, height = 11*(2/4), units = "in", dpi = 600)
############Save results
HEADER <- ifelse(SINGLE,"Single Phase: ","")
write.csv(WY_NPV,paste0("./Results/",HEADER,"Wyoming_NPV_Values.csv"),row.names=FALSE)
write.csv(US_NPV,paste0("./Results/",HEADER,"US_NPV_Values.csv"),row.names=FALSE)
write.csv(NPV,paste0("./Results/",HEADER,"NPV_Values.csv"),row.names=FALSE)
write.csv(ALL_TAX,paste0("./Results/",HEADER,"Tax_Values.csv"),row.names=FALSE)
ggsave( filename = paste0("./Results/",HEADER,"Dollar Values of Model.png"), plot = IMPLAN_REGION_DOLLAR_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
ggsave( filename = paste0("./Results/",HEADER,"Tax Model.png"), plot = TAX_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
ggsave( filename = paste0("./Results/",HEADER,"Employment.png"), plot = IMPLAN_EMPLOYMENT_PLOT , width = 8.5, height = 11*(2/4), units = "in", dpi = 600)
}
OUTPUT_RES(TRUE)
OUTPUT_RES(FALSE)

View File

@ -1,85 +0,0 @@
library(tidyverse)
library(scales)
library(janitor)
library(paletteer)
dir.create("Results", showWarnings = FALSE)
source("Scripts/Load_IMPLAN.r")
SINGLE <- TRUE
IMPLAN <- GET_IMPLAN_DATA(SINGLE)
IMPLAN_DOLLAR <- IMPLAN %>% filter(Impact!='Employment')
IMPLAN_DOLLAR <- IMPLAN_DOLLAR %>% group_by(Type,Year,Impact,Source) %>% mutate(value=ifelse(Region=='US',value-min(value),value) ) %>% ungroup
TEMP <- IMPLAN_DOLLAR %>% filter(Year==2028) %>% mutate(value=0)
IMPLAN_DOLLAR <- rbind(IMPLAN_DOLLAR,rbind(TEMP %>% mutate(Year=2025),TEMP %>% mutate(Year=2026),TEMP %>% mutate(Year=2027)))
IMPLAN_DOLLAR$Impact <- factor(IMPLAN_DOLLAR$Impact,levels=c('Output','Value Added','Income','Federal','State','County'))
IMPLAN_DOLLAR$Region <- factor(ifelse(IMPLAN_DOLLAR$Region=="WY",'Wyoming',"Rest of United States"),levels=rev(c("Wyoming","Rest of United States")))
IMPLAN_DOLLAR_REGION <- IMPLAN_DOLLAR %>% filter(Impact %in% c('Income','Output','Value Added')) %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup
########################Plot of total impact in US and in Wyoming
IMPLAN_REGION_DOLLAR_PLOT <- ggplot(IMPLAN_DOLLAR_REGION ,aes(x=Year,y=value/10^9,fill=Region,group=Region))+geom_area()+facet_wrap(~Impact,ncol=1)+ylab("Billion Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=1))
ggsave( filename = "./Results/Single Phase: Dollar Values of Model.png", plot = IMPLAN_REGION_DOLLAR_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
########################Taxes
IMPLAN_TAX <- IMPLAN_DOLLAR %>% filter(Impact %in% c("County","State","Federal"))
OLD <- IMPLAN_TAX
IMPLAN_TAX <- IMPLAN_TAX %>% group_by(Type,Year,Impact,Source) %>% mutate(value=ifelse(Region=='Rest of United States',value-min(value),value) ) %>% ungroup
IMPLAN_TAX %>% left_join(OLD %>% rename(OLD=value))
IMPLAN_TAX <- IMPLAN_TAX %>% mutate(Impact=ifelse(Region=='Rest of United States' & Impact!='Federal',"Other States",as.character(Impact)))
IMPLAN_TAX$Impact <- ifelse(IMPLAN_TAX$Impact =='State',"Wyoming State Taxes",IMPLAN_TAX$Impact)
IMPLAN_TAX$Impact <- ifelse(IMPLAN_TAX$Impact =='County',"Wyoming County Taxes",IMPLAN_TAX$Impact)
IMPLAN_TAX$Impact <- factor(IMPLAN_TAX$Impact,levels=c('Output','Value Added','Income','Federal','Other States','Wyoming State Taxes','Wyoming County Taxes'))
#IMPLAN_TAX <- IMPLAN_TAX[!(IMPLAN_TAX$Type=='Direct' & IMPLAN_TAX$Region=='Rest of United States'& IMPLAN_TAX$Impact!='Federal'),]
#IMPLAN_TAX <-IMPLAN_TAX[!(IMPLAN_TAX$Type=='Direct' & IMPLAN_TAX$Region=='Wyoming'& IMPLAN_TAX$Impact=='Federal'),]
IMPLAN_DOLLAR <- IMPLAN_DOLLAR %>% filter(!(Impact %in% c("County","State","Federal","Other States"))) %>% rbind(IMPLAN_TAX)
IMPLAN_TAX_FIG_DATA <- IMPLAN_TAX %>% group_by(Year,Impact) %>% summarize(value=sum(value)) %>% ungroup
TAX_PLOT <- ggplot(IMPLAN_TAX_FIG_DATA, aes(x=Year,y=value/10^6,fill=Impact,group=Impact))+geom_area()+ylab("Million Dollars")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","firebrick","#FFC425","#492F24"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=seq(0,5000,by=50))
ggsave( filename = "./Results/Single Phase: Tax Model.png", plot = TAX_PLOT, width = 8.5, height = 11*(3./4), units = "in", dpi = 300)
#############Dollar values table
NPV <- IMPLAN_DOLLAR %>% mutate(value=value/10^9,Discount_0=value,Discount_2=value/(1+0.02)^(Year-2028),Discount_5=value/(1+0.05)^(Year-2028),Discount_10=value/(1+0.1)^(Year-2028)) %>% group_by(Impact,Region) %>% summarize(Discount_0=sum(Discount_0),Discount_2=sum(Discount_2),Discount_5=sum(Discount_5),Discount_10=sum(Discount_10)) %>% ungroup
NPV[,3:6] <-round(NPV[,3:6],2)
WY_NPV <- cbind(c("Discount","0%","2%","5%","10%"),NPV %>% filter(Region=='Wyoming') %>% select(-Region) %>% t) %>% as_tibble
colnames(WY_NPV ) <- WY_NPV[1,]
WY_NPV <- WY_NPV[-1,]
WY_NPV <- WY_NPV %>% mutate_if(is.character, str_trim)
WY_NPV[,-1] <- lapply( lapply(WY_NPV[,-1] ,as.numeric) %>% as_tibble,dollar) %>% as_tibble
WY_TAX <- WY_NPV[,c(1,5:7)]
WY_NPV <- WY_NPV[,c(1:4)]
write.csv(WY_NPV,"./Results/Single Phase: Wyoming_NPV_Values.csv",row.names=FALSE)
write.csv(WY_TAX,"./Results/Single Phase: Wyoming_Tax_Values.csv",row.names=FALSE)
#US
US_NPV <- cbind(c("Discount","0%","2%","5%","10%"),NPV %>% filter(Region!='Wyoming') %>% select(-Region) %>% t) %>% as_tibble
colnames(US_NPV ) <- US_NPV[1,]
US_NPV <- US_NPV[-1,]
US_NPV <- US_NPV %>% mutate_if(is.character, str_trim)
US_NPV[,-1] <- lapply( lapply(US_NPV[,-1] ,as.numeric) %>% as_tibble,dollar) %>% as_tibble
US_NPV
US_TAX <- US_NPV[,c(1,5:6)]
US_NPV <- US_NPV[,c(1:4)]
write.csv(US_NPV,"./Results/Single Phase: US_NPV_Values.csv",row.names=FALSE)
write.csv(US_TAX,"./Results/Single Phase: US_Tax_Values.csv",row.names=FALSE)
write.csv(NPV,"./Results/Single Phase: NPV_Values.csv",row.names=FALSE)
############Employment
IMPLAN_EMPLOY <- IMPLAN %>% filter(Impact=='Employment',Source=='IMPLAN') %>% group_by(Year,Region,Impact) %>% summarize(value=sum(value)) %>% ungroup
IMPLAN_EMPLOY <- IMPLAN_EMPLOY %>% group_by(Year,Impact) %>% mutate(value=ifelse(Region=='US',value-min(value),value) ) %>% ungroup
TEMP <- IMPLAN_EMPLOY %>% filter(Year==2028) %>% mutate(value=0)
IMPLAN_EMPLOY <- rbind(IMPLAN_EMPLOY,rbind(TEMP %>% mutate(Year=2025),TEMP %>% mutate(Year=2026),TEMP %>% mutate(Year=2027)))
IMPLAN_EMPLOY$Region <- factor(ifelse(IMPLAN_EMPLOY$Region=="WY",'Wyoming',"Rest of United States"),levels=rev(c("Wyoming","Rest of United States")))
IMPLAN_EMPLOYMENT_PLOT <- ggplot(IMPLAN_EMPLOY ,aes(x=Year,y=value,fill=Region,group=Region))+geom_area()+ylab("Employment (Full-Time Equivalent)")+theme_bw()+ theme(plot.title = element_text(size = 22, face = "bold"), axis.title = element_text(size = 18),axis.text = element_text(size = 16),legend.text = element_text(size = 14),strip.text = element_text(size = 14),legend.position="top")+ theme(legend.title=element_blank())+scale_fill_manual(values=c("#3C3B6E","#FFC425"))+scale_x_continuous(breaks=seq(2025,2060,by=5))+scale_y_continuous(breaks=c(seq(0,50000,by=1000)),labels = label_comma())
IMPLAN_EMPLOYMENT_PLOT
ggsave( filename = "./Results/Single Phase: Employment.png", plot = IMPLAN_EMPLOYMENT_PLOT , width = 8.5, height = 11*(2/4), units = "in", dpi = 600)