diff --git a/Data_Center_Visuals.r b/Data_Center_Visuals.r index 914c16d..be2ccff 100644 --- a/Data_Center_Visuals.r +++ b/Data_Center_Visuals.r @@ -43,6 +43,28 @@ INPUT_DATA <- INPUT_DATA %>% left_join(DATA_CENTER) %>% mutate(value=marginal* INPUT_DATA <- INPUT_DATA %>% group_by(Type,Year,Region,Impact,Source,Event) %>% summarize(value=sum(value)) %>% ungroup return(INPUT_DATA ) } +###################### +#REGION='Wyoming' +#DIR <- "Computer_Purchase_Mill_Dollars" +#EVENT <- 'COMPUTERS' +GET_DATA_CENTER_JOBS <- function(DIR,EVENT,REGION='Wyoming'){ +# DIR<-"Data_Center_Employment_100_People" +# EVENT<-'DATA_CENTER_EMP' + PATH <- paste0("Model_Outputs/IMPLAN/Data_Center/",REGION,"/",DIR,"/occupation_impacts_table.csv") + INPUT_DATA <- read_csv(PATH)[,c(2:3,5)] + colnames(INPUT_DATA) <- c("Occupation","Employment","Wages") + INPUT_DATA$Wages <- parse_number(INPUT_DATA$Wages) + + INPUT_DATA$Employment<- if(EVENT=='DATA_CENTER_EMP'){INPUT_DATA$Employment<- INPUT_DATA$Employment/100}else{INPUT_DATA$Employment/10^6} #shift to impact per dollar from impact per million dollar + + INPUT_DATA$Wages<- if(EVENT=='DATA_CENTER_EMP'){INPUT_DATA$Wages<- INPUT_DATA$Wages/100}else{INPUT_DATA$Wages/10^6} #shift to impact per dollar from impact per million dollar +INPUT_DATA <- INPUT_DATA %>% rename('marginal_Employment'=Employment,'marginal_Wages'=Wages) +INPUT_DATA$Event <- EVENT +INPUT_DATA$Region <- REGION +INPUT_DATA <- INPUT_DATA %>% left_join(DATA_CENTER) %>% mutate(Employment=marginal_Employment*total,Wages=marginal_Wages*total) +INPUT_DATA <- INPUT_DATA %>% group_by(Occupation,Year,Region,Event) %>% summarize(Employment=sum(Employment),Wages=sum(Wages)) %>% ungroup +return(INPUT_DATA ) +} WY_DATA_TAX <- rbind(GET_DATA_CENTER_TAX("Computer_Purchase_Mill_Dollars",'COMPUTERS'),GET_DATA_CENTER_TAX("Construction_Mill_Dollars",'BUILDING'),GET_DATA_CENTER_TAX("Data_Center_Employment_100_People",'DATA_CENTER_EMP'),GET_DATA_CENTER_TAX("Other_Purchases_Mill_Dollars","OTHER"),GET_DATA_CENTER_TAX("Pre-Development_Million_Dollars","PRE_DEV"),GET_DATA_CENTER_TAX("Utlities_Electricity_Million_USD","UTILITIES")) US_DATA_TAX <- rbind(GET_DATA_CENTER_TAX("Computer_Purchase_Mill_Dollars",'COMPUTERS','US'),GET_DATA_CENTER_TAX("Construction_Mill_Dollars",'BUILDING','US'),GET_DATA_CENTER_TAX("Data_Center_Employment_100_People",'DATA_CENTER_EMP','US'),GET_DATA_CENTER_TAX("Other_Purchases_Mill_Dollars","OTHER",'US'),GET_DATA_CENTER_TAX("Pre-Development_Million_Dollars","PRE_DEV",'US'),GET_DATA_CENTER_TAX("Utlities_Electricity_Million_USD","UTILITIES",'US')) @@ -130,6 +152,86 @@ IMPLAN_EMPLOY <- IMPLAN_EMPLOY %>% group_by(Year,Impact) %>% mutate(value=ifel 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()) +####Occupation +CLEAN_NAMES <- function(DATASET){ +#DATASET$Occupation <- ifelse(DATASET$Occupation=='Doctors','1Doctors',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='Maintenance workers','1Maintenance workers',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='Restaurants','1Restaurants',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='Business Operations','1Business Operations',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='Metal Workers','1Metal Workers',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='Material Moving','1Material Moving',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='General Production','1General Production',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='Management','1Management',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='Clerks','1Clerks',DATASET$Occupation) +#DATASET$Occupation <- ifelse(DATASET$Occupation=='System Operators','1System Operators',DATASET$Occupation) + +DATASET$Occupation <- ifelse(DATASET$Occupation=='Healthcare Diagnosing or Treating Practitioners','Doctors',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Other Installation, Maintenance, and Repair Occupations','Maintenance workers',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Food and Beverage Serving Workers','Restaurants',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Business Operations Specialists','Business Operations',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Metal Workers and Plastic Workers','Metal Workers',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Material Moving Workers','Material Moving',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Other Production Occupations','General Production',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Other Management Occupations','Management',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Information and Record Clerks','Clerks',DATASET$Occupation) +DATASET$Occupation <- ifelse(DATASET$Occupation=='Plant and System Operators','System Operators',DATASET$Occupation) +return(DATASET) +} + +WY_DATA_OCCUPATION <- rbind(GET_DATA_CENTER_JOBS("Computer_Purchase_Mill_Dollars",'COMPUTERS'),GET_DATA_CENTER_JOBS("Construction_Mill_Dollars",'BUILDING'),GET_DATA_CENTER_JOBS("Data_Center_Employment_100_People",'DATA_CENTER_EMP'),GET_DATA_CENTER_JOBS("Other_Purchases_Mill_Dollars","OTHER"),GET_DATA_CENTER_JOBS("Pre-Development_Million_Dollars","PRE_DEV"),GET_DATA_CENTER_JOBS("Utlities_Electricity_Million_USD","UTILITIES")) +WY_DATA_OCCUPATION <- CLEAN_NAMES(WY_DATA_OCCUPATION ) + +US_DATA_OCCUPATION <- rbind(GET_DATA_CENTER_JOBS("Computer_Purchase_Mill_Dollars",'COMPUTERS','US'),GET_DATA_CENTER_JOBS("Construction_Mill_Dollars",'BUILDING','US'),GET_DATA_CENTER_JOBS("Data_Center_Employment_100_People",'DATA_CENTER_EMP','US'),GET_DATA_CENTER_JOBS("Other_Purchases_Mill_Dollars","OTHER",'US'),GET_DATA_CENTER_JOBS("Pre-Development_Million_Dollars","PRE_DEV",'US'),GET_DATA_CENTER_JOBS("Utlities_Electricity_Million_USD","UTILITIES",'US')) +US_DATA_OCCUPATION <- CLEAN_NAMES(US_DATA_OCCUPATION ) + + + + +RES <- rbind(US_DATA_OCCUPATION ,WY_DATA_OCCUPATION) %>% group_by(Occupation,Year,Region) %>% summarize(Employment=sum(Employment),Wages=sum(Wages)) %>% ungroup + +JOBS <- rbind(RES %>% filter(Year<2030,Region=='Wyoming') %>% group_by(Occupation) %>% summarize(Peak_Employment=max(Employment,na.rm=TRUE),Employment=mean(Employment,na.rm=TRUE),Wages=mean(Wages,na.rm=TRUE)) %>% ungroup %>% arrange(desc(Employment)) %>% mutate(Region='Wyoming',Period='Construction'),RES %>% filter(Year>=2030,Region=='Wyoming') %>% arrange(desc(Employment)) %>% mutate(Peak_Employment=Employment,Region='Wyoming',Period='Operations')%>% select(-Year),RES %>% filter(Year<2030,Region!='Wyoming') %>% group_by(Occupation) %>% summarize(Peak_Employment=max(Employment,na.rm=TRUE),Employment=mean(Employment,na.rm=TRUE),Wages=mean(Wages,na.rm=TRUE)) %>% ungroup %>% arrange(desc(Employment)) %>% mutate(Region='United States',Period='Construction'),RES %>% filter(Year>=2030,Region!='Wyoming') %>% arrange(desc(Employment)) %>% mutate(Peak_Employment=Employment,Region='United States',Period='Operations')%>% select(-Year)) + +US_DATA_OCCUPATION <- CLEAN_NAMES(US_DATA_OCCUPATION ) + +RES <- WY_DATA_OCCUPATION %>% select(Occupation,Employment,Wages,Year) +RES_US <- US_DATA_OCCUPATION %>% select(Occupation,Employment,Wages,Year) + + + + +### +WY_JOBS <- JOBS %>% filter(Region=='Wyoming') %>% rename(Peak_Wy_Employment=Peak_Employment,Wy_Employment=Employment,Wy_Wages=Wages) %>% select(-Region) +US_JOBS <- JOBS %>% filter(Region!='Wyoming') %>% rename(Peak_US_Employment=Peak_Employment,US_Employment=Employment,US_Wages=Wages) %>% select(-Region) + +JOINED <- WY_JOBS %>% left_join(US_JOBS) %>% mutate(US_Employment=US_Employment-Wy_Employment,Peak_US_Employment=Peak_Wy_Employment,US_Wages=US_Wages-Wy_Wages) +JOINED$US_Employment <- ifelse(JOINED$US_Employment<0,0,JOINED$US_Employment) +JOINED$US_Wages <- ifelse(JOINED$US_Employment==0,0,JOINED$US_Wages) +JOINED$Peak_US_Employment <- ifelse(JOINED$US_Employment==0,0,JOINED$Peak_US_Employment) + +EMP_SUMMARY <- JOINED %>% mutate(Total_Employment=US_Employment+Wy_Employment,Total_Wages=US_Wages+Wy_Wages) %>% group_by(Period) %>% mutate(Rank=rank(-rank(Total_Employment))) %>% arrange(Period,Rank) %>% ungroup %>% mutate(Rank=ifelse(Rank>15,16,Rank)) + + +RANK <- EMP_SUMMARY %>% select(Occupation,Period,Rank) %>% ungroup +PEAK_WY <- RES %>% mutate(Period=ifelse(Year>=2030,"Operations","Construction")) %>% left_join(RANK) %>% mutate(Occupation=ifelse(Rank==16,"Other",Occupation)) %>% group_by(Occupation,Year,Period,Rank) %>% summarize(Peak_Employment=max(Employment,na.rm=TRUE)) %>% group_by(Period,Occupation,Rank) %>% summarize(Wy_Peak_Employment=max(Peak_Employment,na.rm=TRUE)) %>% ungroup %>% select(Occupation,Period,Wy_Peak_Employment) + +PEAK_US <- RES_US %>% select(Occupation,Year,US_Employment=Employment) %>% left_join(RES %>% mutate(Wy_Employment=Employment)) %>% mutate(Employment=US_Employment-Wy_Employment)%>% select(-US_Employment,-Wages) %>% mutate(Period=ifelse(Year>=2030,"Operations","Construction")) %>% left_join(RANK) %>% mutate(Occupation=ifelse(Rank==16,"Other",Occupation)) %>% group_by(Occupation,Year,Period,Rank) %>% summarize(Peak_Employment=max(Employment,na.rm=TRUE)) %>% group_by(Period,Occupation,Rank) %>% summarize(US_Peak_Employment=max(Peak_Employment,na.rm=TRUE)) %>% ungroup %>% select(Occupation,Period,US_Peak_Employment) +rbind(RES_US,RES) %>% group_by(Year) %>% summarize(Employment=max(Employment)) %>% plot +PEAK_ALL <- rbind(RES_US,RES) %>% group_by(Occupation,Year) %>% summarize(Employment=max(Employment)) %>% mutate(Period=ifelse(Year>=2030,"Operations","Construction")) %>% left_join(RANK) %>% mutate(Occupation=ifelse(Rank==16,"Other",Occupation)) %>% group_by(Occupation,Year,Period,Rank) %>% summarize(Peak_Employment=max(Employment,na.rm=TRUE)) %>% group_by(Occupation,Period) %>% summarize(Total_Peak_Employment=max(Peak_Employment)) %>% ungroup + +#PEAK_ALL <- rbind(US ,WY) %>% group_by(Occupation,Year,Period) %>% summarize(Employment=sum(Employment,na.rm=TRUE)) %>% left_join(RANK) %>% mutate(Occupation=ifelse(Rank==16,"Other",Occupation)) %>% group_by(Occupation,Period) %>% summarize(Total_Peak_Employment=max(Employment,na.rm=TRUE)) %>% ungroup + +PEAK <- PEAK_ALL %>% left_join(PEAK_WY) %>% left_join(PEAK_US) +PEAK %>% arrange(desc(Total_Peak_Employment)) +PEAK + + +EMP_SUMMARY <- EMP_SUMMARY %>% select(-Peak_Wy_Employment,-Peak_US_Employment) %>% mutate(Occupation=ifelse(Rank>15,"Other",Occupation),Rank=ifelse(Rank>15,16,Rank)) %>% group_by(Occupation,Rank,Period) %>% summarize(Wy_Employment=sum(Wy_Employment,na.rm=TRUE),Wy_Wages=sum(Wy_Wages,na.rm=TRUE),US_Employment=sum(US_Employment,na.rm=TRUE),US_Wages=sum(US_Wages,na.rm=TRUE),Total_Employment=sum(Total_Employment,na.rm=TRUE),Total_Wages=sum(Total_Wages,na.rm=TRUE)) %>% ungroup +EMP_SUMMARY <- EMP_SUMMARY %>% left_join(PEAK) %>% arrange(Period,Rank) %>% print(n=100) + +CONSTRUCTION_EMP_SUMMARY <- EMP_SUMMARY %>% select(Occupation,Period,Wy_Employment,Wy_Peak_Employment,Wy_Wages,US_Employment,US_Peak_Employment,US_Wages,Total_Employment,Total_Peak_Employment,Total_Wages) %>% filter(Period=='Construction') %>% select(-Period) + +OP_EMP_SUMMARY <- EMP_SUMMARY %>% select(Occupation,Period,Wy_Employment,Wy_Peak_Employment,Wy_Wages,US_Employment,US_Peak_Employment,US_Wages,Total_Employment,Total_Peak_Employment,Total_Wages) %>% filter(Period=='Operations') %>% select(-Period) + ############Save results @@ -138,6 +240,9 @@ write.csv(WY_NPV,paste0("./Results/",HEADER,"Wyoming_NPV_Values.csv"),row.names= 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) +write.csv(CONSTRUCTION_EMP_SUMMARY ,paste0("./Results/",HEADER,"Construction_Occupation.csv"),row.names=FALSE) +write.csv(OP_EMP_SUMMARY,paste0("./Results/",HEADER,"Operation_Occupation.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) diff --git a/Visuals.r b/Visuals.r index 60cfd62..4d9c5fe 100644 --- a/Visuals.r +++ b/Visuals.r @@ -76,25 +76,7 @@ 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_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()) - - -############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) - -######### +#############################Get Occupation Information if(exists("RES")){rm(RES)} for(YEAR in 2028:2036){ TEMP <- read_csv(paste0("Model_Outputs/IMPLAN/Wyoming/WY_",YEAR,"/occupation_impacts_table.csv"))[,c(2:3,5)] @@ -114,22 +96,78 @@ TEMP <- TEMP %>% mutate(Year=YEAR) if(!exists("RES_US")){RES_US <- TEMP}else{RES_US <- rbind(RES_US,TEMP)} rm(TEMP) } -JOBS <- rbind(RES %>% filter(Year<2036) %>% group_by(Occupation) %>% summarize(Peak_Employment=max(Employment),Employment=mean(Employment),Wages=mean(Wages)) %>% ungroup %>% arrange(desc(Employment)) %>% mutate(Region='Wyoming',Period='Construction'), -RES %>% filter(Year==2036) %>% arrange(desc(Employment)) %>% mutate(Peak_Employment=Employment,Region='Wyoming',Period='Operations')%>% select(-Year), -RES_US %>% filter(Year<2036) %>% group_by(Occupation) %>% summarize(Peak_Employment=max(Employment),Employment=mean(Employment),Wages=mean(Wages)) %>% ungroup %>% arrange(desc(Employment)) %>% mutate(Region='United States',Period='Construction'), -RES_US %>% filter(Year==2036) %>% arrange(desc(Employment)) %>% mutate(Peak_Employment=Employment,Region='United States',Period='Operations')%>% select(-Year)) -### +JOBS <- rbind(RES %>% filter(Year<2036) %>% group_by(Occupation) %>% summarize(Peak_Employment=max(Employment),Employment=mean(Employment),Wages=mean(Wages)) %>% ungroup %>% arrange(desc(Employment)) %>% mutate(Region='Wyoming',Period='Construction'),RES %>% filter(Year==2036) %>% arrange(desc(Employment)) %>% mutate(Peak_Employment=Employment,Region='Wyoming',Period='Operations')%>% select(-Year),RES_US %>% filter(Year<2036) %>% group_by(Occupation) %>% summarize(Peak_Employment=max(Employment),Employment=mean(Employment),Wages=mean(Wages)) %>% ungroup %>% arrange(desc(Employment)) %>% mutate(Region='United States',Period='Construction'),RES_US %>% filter(Year==2036) %>% arrange(desc(Employment)) %>% mutate(Peak_Employment=Employment,Region='United States',Period='Operations')%>% select(-Year)) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Home Health and Personal Care Aides; and Nursing Assistants, Orderlies, and Psychiatric Aides',"Nursing",JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Doctors','1Doctors',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Maintenance workers','1Maintenance workers',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Restaurants','1Restaurants',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Business Operations','1Business Operations',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Metal Workers','1Metal Workers',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Material Moving','1Material Moving',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='General Production','1General Production',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Management','1Management',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Clerks','1Clerks',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='System Operators','1System Operators',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Healthcare Diagnosing or Treating Practitioners','Doctors',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Other Installation, Maintenance, and Repair Occupations','Maintenance workers',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Food and Beverage Serving Workers','Restaurants',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Business Operations Specialists','Business Operations',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Metal Workers and Plastic Workers','Metal Workers',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Material Moving Workers','Material Moving',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Other Production Occupations','General Production',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Other Management Occupations','Management',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Information and Record Clerks','Clerks',JOBS$Occupation) +JOBS$Occupation <- ifelse(JOBS$Occupation=='Plant and System Operators','System Operators',JOBS$Occupation) + + + + +### WY_JOBS <- JOBS %>% filter(Region=='Wyoming') %>% rename(Peak_Wy_Employment=Peak_Employment,Wy_Employment=Employment,Wy_Wages=Wages) %>% select(-Region) US_JOBS <- JOBS %>% filter(Region!='Wyoming') %>% rename(Peak_US_Employment=Peak_Employment,US_Employment=Employment,US_Wages=Wages) %>% select(-Region) JOINED <- WY_JOBS %>% left_join(US_JOBS) %>% mutate(US_Employment=US_Employment-Wy_Employment,Peak_US_Employment=Peak_Wy_Employment,US_Wages=US_Wages-Wy_Wages) JOINED$US_Employment <- ifelse(JOINED$US_Employment<0,0,JOINED$US_Employment) JOINED$US_Wages <- ifelse(JOINED$US_Employment==0,0,JOINED$US_Wages) JOINED$Peak_US_Employment <- ifelse(JOINED$US_Employment==0,0,JOINED$Peak_US_Employment) -EMP_SUMMARY <- JOINED %>% mutate(Total_Employment=US_Employment+Wy_Employment,Total_Wages=US_Wages+Wy_Wages) %>% group_by(Period) %>% mutate(Rank=rank(-rank(Total_Employment))) %>% arrange(Period,Rank) +EMP_SUMMARY <- JOINED %>% mutate(Total_Employment=US_Employment+Wy_Employment,Total_Wages=US_Wages+Wy_Wages) %>% group_by(Period) %>% mutate(Rank=rank(-rank(Total_Employment))) %>% arrange(Period,Rank) %>% ungroup %>% mutate(Rank=ifelse(Rank>15,16,Rank)) + +RANK <- EMP_SUMMARY %>% select(Occupation,Period,Rank) %>% ungroup %>% unique +PEAK_WY <- RES %>% mutate(Period=ifelse(Year==2036,"Operations","Construction")) %>% left_join(RANK) %>% mutate(Occupation=ifelse(Rank==16,"Other",Occupation)) %>% group_by(Occupation,Year,Period,Rank) %>% summarize(Peak_Employment=max(Employment)) %>% group_by(Period,Occupation,Rank) %>% summarize(Wy_Peak_Employment=max(Peak_Employment)) %>% ungroup %>% select(Occupation,Period,Wy_Peak_Employment) + +PEAK_US <- RES_US %>% select(Occupation,Year,US_Employment=Employment) %>% left_join(RES) %>% mutate(Employment=US_Employment-Employment,Employment=ifelse(Employment<0,0,Employment)) %>% select(-US_Employment,-Wages) %>% mutate(Period=ifelse(Year==2036,"Operations","Construction")) %>% left_join(RANK) %>% mutate(Occupation=ifelse(Rank==16,"Other",Occupation)) %>% group_by(Occupation,Year,Period,Rank) %>% summarize(Peak_Employment=max(Employment)) %>% group_by(Period,Occupation,Rank) %>% summarize(US_Peak_Employment=max(Peak_Employment)) %>% ungroup %>% select(Occupation,Period,US_Peak_Employment) +US <- RES_US %>% select(Occupation,Year,US_Employment=Employment) %>% left_join(RES) %>% mutate(Employment=US_Employment-Employment,Employment=ifelse(Employment<0,0,Employment)) %>% select(-US_Employment,-Wages) %>% mutate(Period=ifelse(Year==2036,"Operations","Construction")) +WY <- RES %>% mutate(Period=ifelse(Year==2036,"Operations","Construction")) %>% select(-Wages) +WY <- WY %>% select(Occupation,Year,Employment,Period) +PEAK_ALL <- rbind(US ,WY) %>% group_by(Occupation,Year,Period) %>% summarize(Employment=sum(Employment)) %>% left_join(RANK) %>% mutate(Occupation=ifelse(Rank==16,"Other",Occupation)) %>% group_by(Occupation,Period) %>% summarize(Total_Peak_Employment=max(Employment)) %>% ungroup +PEAK <- PEAK_ALL %>% left_join(PEAK_WY) %>% left_join(PEAK_US) +EMP_SUMMARY <- EMP_SUMMARY %>% select(-Peak_Wy_Employment,-Peak_US_Employment) %>% mutate(Occupation=ifelse(Rank>15,"Other",Occupation),Rank=ifelse(Rank>15,16,Rank)) %>% group_by(Occupation,Rank,Period) %>% summarize(Wy_Employment=sum(Wy_Employment),Wy_Wages=sum(Wy_Wages),US_Employment=sum(US_Employment),US_Wages=sum(US_Wages),Total_Employment=sum(Total_Employment),Total_Wages=sum(Total_Wages)) %>% ungroup +EMP_SUMMARY <- EMP_SUMMARY %>% left_join(PEAK) %>% arrange(Period,Rank) %>% print(n=100) + +CONSTRUCTION_EMP_SUMMARY <- EMP_SUMMARY %>% select(Occupation,Period,Wy_Employment,Wy_Peak_Employment,Wy_Wages,US_Employment,US_Peak_Employment,US_Wages,Total_Employment,Total_Peak_Employment,Total_Wages) %>% filter(Period=='Construction') %>% select(-Period) + +OP_EMP_SUMMARY <- EMP_SUMMARY %>% select(Occupation,Period,Wy_Employment,Wy_Peak_Employment,Wy_Wages,US_Employment,US_Peak_Employment,US_Wages,Total_Employment,Total_Peak_Employment,Total_Wages) %>% filter(Period=='Operations') %>% select(-Period) +#GRAPH_DATA <- EMP_SUMMARY %>% select(Occupation,Period,Rank,Total_Employment) %>% mutate(Occupation=as.factor(Occupation)) +# ggplot(GRAPH_DATA, aes(x = Period, y = Total_Employment, fill = Occupation)) + geom_col(position = "stack")+ 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") +############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) +write.csv(CONSTRUCTION_EMP_SUMMARY ,paste0("./Results/",HEADER,"Construction_Occupation.csv"),row.names=FALSE) +write.csv(OP_EMP_SUMMARY,paste0("./Results/",HEADER,"Operation_Occupation.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) -TOTAL_JOBS <- JOBS %>% group_by(Occupation,Period) %>% summarize(Total_Employment=sum(Employment,na.rm=TRUE),Total_Wages=sum(Wages,na.rm=TRUE)) %>% ungroup %>% group_by(Period) %>% mutate(Rank=rank(-rank(Total_Employment))) %>% arrange(Period,Rank) -JOBS %>% group_by(Occupation,Period) %>% summarize(Total_Employment=sum(Employment),Total_Wages=sum(Wages))