From 35d54d0a2ba713abc19f7ff5913e08b29ecfedb6 Mon Sep 17 00:00:00 2001 From: Alex Gebben Work Date: Fri, 7 Aug 2026 12:12:14 -0600 Subject: [PATCH] Updated to loop through regions --- Tapestry.r | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/Tapestry.r b/Tapestry.r index 3170bbb..940c7ef 100644 --- a/Tapestry.r +++ b/Tapestry.r @@ -1,8 +1,17 @@ library(tidyverse) library(readxl) -GET_MULTIPLIERS <- function(STATE,YEAR=2024,VERSION='1.5.6'){ - FILE <- paste0(STATE,"_",YEAR,"_SAM_v",VERSION,"/",STATE,"_leontief_",YEAR,".xlsx") + + +GET_MULTIPLIERS <- function(ROOT_FOLDER="States/",YEAR=2024,VERSION='1.5.6'){ + SUB_FOLDER <- list.files(FOLDER) + ENTRIES <- (strsplit(SUB_FOLDER,paste0("_",YEAR)) %>% unlist) +REGIONS <- ENTRIES[seq(1,length(ENTRIES),by=2)] +ALL_FILES <- list.files(paste0(ROOT_FOLDER,SUB_FOLDER),full.names=TRUE) +LEONTIEF <- ALL_FILES[grep("leontief",ALL_FILES)] +for(CURRENT in 1:length(REGIONS)){ +REGION <- REGIONS[CURRENT] +FILE <- LEONTIEF[CURRENT] TYPE1 <- read_xlsx(FILE,'I-Ainv_type1') TYPE2 <- read_xlsx(FILE,'I-Ainv_type2') NROW1 <- nrow(TYPE1) @@ -12,10 +21,21 @@ NAICS <- NAMES[seq(1,976,by=2)] Industry_Name <- NAMES[seq(2,976,by=2)] Indirect <- as.numeric(TYPE1[NROW1,2:NROW1]) Induced <- as.numeric(TYPE2[NROW2,2:(NROW2-6)]) -return(cbind(NAICS,Industry_Name,Indirect,Induced) %>% as_tibble %>% mutate(Indirect=as.numeric(Indirect),Induced=as.numeric(Induced)) %>% mutate(State=STATE,Total=Induced,Induced=Induced-Indirect,Indirect=Indirect-1) %>% select(State,everything())) + +CRES <- cbind(NAICS,Industry_Name,Indirect,Induced) %>% as_tibble %>% mutate(Indirect=as.numeric(Indirect),Induced=as.numeric(Induced)) %>% mutate(Region=REGION,Total=Induced,Induced=Induced-Indirect,Indirect=Indirect-1) %>% select(Region,everything()) +if(CURRENT==1){RES <- CRES}else{RES <- rbind(RES,CRES)} } -ALL <- full_join(full_join(GET_MULTIPLIERS("Arizona"),GET_MULTIPLIERS("Arkansas")),GET_MULTIPLIERS("California")) %>% full_join(GET_MULTIPLIERS("Wyoming")) -ggplot(ALL,aes(x=State,y=Total,color=State)) + geom_boxplot() - - +return(RES %>% as_tibble) +} +ALL <- GET_MULTIPLIERS() +ggplot(ALL,aes(x=Region,y=Total,color=Region)) + geom_boxplot()+theme(legend.position = "none") +STATE_BIND <- cbind(state.name,state.abb) %>% as.tibble %>%rename(Region=state.name,State=state.abb) +ALL$Region <- gsub("_"," ",ALL$Region) +ALL <- ALL %>% inner_join(STATE_BIND) +STATE_BIND <- ALL %>% group_by(State) %>% summarize(Total=median(Total)) %>% mutate(Rank=rank(-Total)) +ORD <- STATE_BIND %>% arrange(Rank) %>% pull(State) +ALL$State <- factor(ALL$State,level=ORD) +ALL_ORIG <- ALL +ALL <- ALL %>% filter(Total<5) +ggplot(ALL,aes(x=State,y=Total,color=State)) + geom_boxplot()+theme(legend.position = "none")