IMPLAN_Summary/Create_Tables.r
2025-10-20 16:21:34 -06:00

56 lines
3.6 KiB
R

library(tidyverse)
RES_PATH <- './Results'
dir.create(RES_PATH,showWarnings=FALSE)
source("Scripts/Occupation_Clean.r")
#Clean all of the saved Occupation files
Occupation_Summary_Directory()
SUMMARY_DIR <- "Data/Economic_Indicator_Summary"
FILE <- list.files(SUMMARY_DIR,pattern="*.csv",full.names=TRUE)
DATA <- read_csv("Data/Economic_Indicator_Summary/Economic Indicator Summary.csv") %>% mutate_at(6:8,parse_number)
colnames(DATA) <- gsub(" ","_",colnames(DATA))
DATA$Impact <- gsub("1|2|3|-| ","",DATA$Impact)
DATA <- DATA %>% filter(!is.na(Group_Name))
colnames(DATA )
OVERALL <- DATA %>% group_by(Event_Name) %>% summarize(Output=sum(Output),Value_Added=sum(Value_Added) ,Employment=sum(Employment),Labor_Income=sum(Labor_Income))
DATA <- DATA %>% select(-Group_Name,-Region)
library(scales)
GET_SUMMARY <- function(COL_NUM,DATA){
DATA <- DATA[,c(1,2,COL_NUM)]
ORIG_COL_NAME <- colnames(DATA)[3]
colnames(DATA)[3] <- "TEMP_COL"
RES <- DATA %>% group_by(Event_Name)%>% summarize('Direct'=percent(sum(ifelse(Impact=='Direct',TEMP_COL,0))/sum(TEMP_COL)),'Indirect'=percent(sum(ifelse(Impact=='Indirect',TEMP_COL,0))/sum(TEMP_COL)),'Induced'=percent(sum(ifelse(Impact=='Induced',TEMP_COL,0))/sum(TEMP_COL)))
RES$Type <- ORIG_COL_NAME
RES <- RES[,c(1,5,2:4)]
return(RES)
}
TOTAL_IMPACT_SUMMARY <- DATA %>% group_by(Event_Name,Impact) %>% summarize(Employment=sum(Employment),Labor_Income=sum(Labor_Income),Value_Added=sum(Value_Added),Output=sum(Output))
DIRECT_SPLIT_SUMMARY <- rbind(GET_SUMMARY(3,DATA),GET_SUMMARY(4,DATA),GET_SUMMARY(5,DATA),GET_SUMMARY(6,DATA)) %>% arrange(Event_Name)
write_csv(DIRECT_SPLIT_SUMMARY, "Results/Event_Impact_Summary.csv")
####Taxes
TAX <- read_csv("Data/Tax_Impacts_Summary/tax_summary.csv") %>% mutate_at(4:10,parse_number)
colnames(TAX) <- gsub(" ","_",colnames(TAX))
TAX$Impact <- ifelse(TAX$Impact==1,'Direct',ifelse(TAX$Impact==2,'Indirect' ,'Induced'))
TAX <- TAX %>% filter(!is.na(Group_Name))
TAX <- TAX %>% filter(!is.na(Event_Name))
TAX_SUMMARY <- TAX %>% group_by(Event_Name,Impact) %>% summarize(County=sum(County+Sub_County_General+Sub_County_Special_Districts),State=sum(State) ,Federal=sum(Federal)) %>% mutate(Wyoming_Total=County+State)
#Reduce to 25% for direct due to manufacturing exemption.
TAX_SUMMARY[TAX_SUMMARY$Impact=='Direct',-1:-2] <- 0.25*TAX_SUMMARY[TAX_SUMMARY$Impact=='Direct',-1:-2]
GET_SUMMARY(6,TAX_SUMMARY)
DIRECT_SPLIT_SUMMARY <- rbind(GET_SUMMARY(3,DATA),GET_SUMMARY(4,DATA),GET_SUMMARY(5,DATA),GET_SUMMARY(6,DATA)) %>% arrange(Event_Name)
DIRECT_SPLIT_SUMMARY <- rbind(DIRECT_SPLIT_SUMMARY,GET_SUMMARY(6,TAX_SUMMARY) %>% mutate(Type='Wyoming Total Taxes')) %>% arrange(Event_Name) %>% unique
write_csv(DIRECT_SPLIT_SUMMARY, "Results/Impact_Ratio_Summary.csv")
TOTAL_IMPACT_SUMMARY <- left_join(TOTAL_IMPACT_SUMMARY ,TAX_SUMMARY) %>% arrange(Event_Name) %>% select(-Federal)
TOTAL_IMPACT_SUMMARY <- full_join(TOTAL_IMPACT_SUMMARY, TOTAL_IMPACT_SUMMARY %>% group_by(Event_Name) %>% summarize(Impact='Total',Employment=sum(Employment),Labor_Income=sum(Labor_Income),Value_Added=sum(Value_Added),Output=sum(Output),Wyoming_Total=sum(Wyoming_Total),State=sum(State),County=sum(County)) %>% arrange(Event_Name,Impact)) %>% select(Event_Name,Impact,Employment,Labor_Income,Value_Added,Output,Wyoming_Total,State,County)
TOTAL_IMPACT_SUMMARY[,3] <- round(TOTAL_IMPACT_SUMMARY[,3])
TOTAL_IMPACT_SUMMARY[4:9] <- round(TOTAL_IMPACT_SUMMARY[4:9]/10^6,2)
colnames(TOTAL_IMPACT_SUMMARY)[7:9] <- paste0(colnames(TOTAL_IMPACT_SUMMARY[,7:9]),"_Taxes")
colnames(TOTAL_IMPACT_SUMMARY)
TOTAL_IMPACT_SUMMARY %>% arrange(Event_Name,Impact)
write_csv(TOTAL_IMPACT_SUMMARY, "Results/Event_Impact_Summary.csv")