# Sricp 1: Setting up Output Data Objects ## Version: "Imaginary Country" Start Year 2000 > This setup file generates all country-specific objects used by the set of R simulation output analysis and visualization scripts. The output of this script is an image file "globals_for_analysis.RData" which is read by each of the thematic analysis scripts. This is the only R script which has to be adapted when porting the model to another country context. Files in ../../Model/OutputScenarios/ - Output_ABC_2000_base.csv - Output_ABC_2000_alt.csv - Tables_ABC_2000_base.xlsx - Tables_ABC_2000_alt.xlsx ```{r, message=FALSE, warning=FALSE} #################################################################################################### # # DYNAMIS-POP Output Analysis File 1 - Generate all country-specific R objects # This file has to be run before performing all other output analysis steps # Last Update: Martin Spielauer 2019-04-14 # #################################################################################################### #################################################################################################### # Clear work space and load required packages #################################################################################################### rm(list=ls()) library("dplyr") library("tidyr") library("ggplot2") library("ggthemes") library("cowplot") library("sf") library("gdalUtils") library("tmap") library("readxl") #################################################################################################### # Maps #################################################################################################### f_shape <- st_read('../Data/ABC_2000/Shapes/shape_abc.shp') dynxls_base <- '../../Model/OutputScenarios/Tables_ABC_2000_base.xlsx' dynxls_alt <- '../../Model/OutputScenarios/Tables_ABC_2000_alt.xlsx' f_4years <- c("2000", "2010", "2020", "2030") dyn_base <- read_xlsx(dynxls_base) sheet_names_base <- excel_sheets(dynxls_base) df_sheets_base <- lapply(sheet_names_base, function(.sheet){read_xlsx(dynxls_base, .sheet)}) # We read all sheets except the first three, which only contain meta information for (n in 4:length(df_sheets_base)) { s <- data.frame(df_sheets_base[n]) s[1] <- NULL # The first column contains no data; we drop it assign(paste0(sheet_names_base[n],'_base'), s) } dyn_alt <- read_xlsx(dynxls_alt) sheet_names_alt <- excel_sheets(dynxls_alt) df_sheets_alt <- lapply(sheet_names_alt, function(.sheet){read_xlsx(dynxls_alt, .sheet)}) # We read all sheets except the first three, which only contain meta information for (n in 4:length(df_sheets_alt)) { s <- data.frame(df_sheets_alt[n]) s[1] <- NULL # The first column contains no data; we drop it assign(paste0(sheet_names_alt[n],'_alt'), s) } # District labels district_labels <- variable.names(TabPrimSchoolOutOfSchool9to11_base) district_labels <- district_labels[3:length(district_labels)-1] f_shape$DISTRICT <- district_labels tmap_options_reset() bgc <- "white" # Background color for plot maps # Suggestions: lightblue, grey85, white credit <- "World Bank, DYNAMIS-POP v2.0" # Text for credit p_cred <- "left" # Position of credit titl_sz <- 0.8 # Title size savemap <- "Y" # Maps to be saved as images? Y/N sav_loc <- "Figures/" # Location of saved maps (leave blank if = default folder) sav_fmt <- "jpg" # File format for saved maps. Options: pdf, eps, svg, # wmf (Windows only), png, jpg, bmp, or tiff #################################################################################################### # Read Simulation Output Files and generate data objects #################################################################################################### g_data_base <- read.csv("../../Model/OutputScenarios/Output_ABC_2000_base.csv") g_data_alt <- read.csv("../../Model/OutputScenarios/Output_ABC_2000_alt.csv") g_data_base$g_scenario <- 'base' g_data_alt$g_scenario <- 'alt' g_data <- rbind(g_data_base,g_data_alt) g_data$m_agegr5 <- as.integer((g_data$TIME - g_data$BIRTH)/5) * 5 #################################################################################################### # Generate a 5y age pyramid by education data frame #################################################################################################### g_pyramid <- as.data.frame(xtabs(g_data$WEIGHT ~ g_data$MALE + g_data$m_agegr5 + g_data$EDUCATION + g_data$TIME + g_data$DISTRICT + g_data$g_scenario)) g_pyramid <- g_pyramid[!(g_pyramid$g_data.m_agegr5==100),] g_pyramid$gender[g_pyramid$g_data.MALE==0] <- 'female' g_pyramid$gender[g_pyramid$g_data.MALE==1] <- 'male' g_pyramid$educ[g_pyramid$g_data.EDUCATION==0] <- '1-non ' g_pyramid$educ[g_pyramid$g_data.EDUCATION==1] <- '2-incomplete' g_pyramid$educ[g_pyramid$g_data.EDUCATION==2] <- '3-completed' g_pyramid$age[g_pyramid$g_data.m_agegr5==0] <- ' 0-4' g_pyramid$age[g_pyramid$g_data.m_agegr5==5] <- ' 5-9' g_pyramid$age[g_pyramid$g_data.m_agegr5==10] <- '10-14' g_pyramid$age[g_pyramid$g_data.m_agegr5==15] <- '15-19' g_pyramid$age[g_pyramid$g_data.m_agegr5==20] <- '20-24' g_pyramid$age[g_pyramid$g_data.m_agegr5==25] <- '25-29' g_pyramid$age[g_pyramid$g_data.m_agegr5==30] <- '30-34' g_pyramid$age[g_pyramid$g_data.m_agegr5==35] <- '35-39' g_pyramid$age[g_pyramid$g_data.m_agegr5==40] <- '40-44' g_pyramid$age[g_pyramid$g_data.m_agegr5==45] <- '45-49' g_pyramid$age[g_pyramid$g_data.m_agegr5==50] <- '50-54' g_pyramid$age[g_pyramid$g_data.m_agegr5==55] <- '55-59' g_pyramid$age[g_pyramid$g_data.m_agegr5==60] <- '60-64' g_pyramid$age[g_pyramid$g_data.m_agegr5==65] <- '65-69' g_pyramid$age[g_pyramid$g_data.m_agegr5==70] <- '70-74' g_pyramid$age[g_pyramid$g_data.m_agegr5==75] <- '75-79' g_pyramid$age[g_pyramid$g_data.m_agegr5==80] <- '80-84' g_pyramid$age[g_pyramid$g_data.m_agegr5==85] <- '85-89' g_pyramid$age[g_pyramid$g_data.m_agegr5==90] <- '90-94' g_pyramid$age[g_pyramid$g_data.m_agegr5==95] <- '95+' for (nY in 1:length(district_labels)) { g_pyramid$sDistrict[g_pyramid$g_data.DISTRICT==nY-1] <- district_labels[nY] } #################################################################################################### # Save global objects #################################################################################################### save.image(file="globals_for_output_analysis.RData") ```