knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(fpemdata) library(fpemreporting) library(fpemmodeling) library(ggplot2) library(grid) library(gridExtra)
In this vignette we will run two models for each country available, one for women in union and another for women not in union. We will use the package default data fpemdata::contraceptive_use
for this example.
# years we will run one country model first_year = 1970 last_year = 2030 # vector of countries where we have data global_divs <- fpemdata:::index_m$index_area_df$division_numeric_code divs <- dplyr::tibble(division_numeric_code = fpemdata::fp2020[fpemdata::fp2020$division_numeric_code %in% global_divs,]) # dplyr::pull() divnames <- divs %>% dplyr::left_join(fpemdata::divisions) %>% dplyr::select(name_country) %>% dplyr::pull() divs <- divs %>% dplyr::pull() if(!dir.exists("output")) dir.create("output") # inconsinstent indicator names, FPEM vs UNPD indicators <- c( "unmet_need_any", "contraceptive_use_modern", "contraceptive_use_traditional", "contraceptive_use_any" ) indicators_un <- c( "unmet", "modern", "traditional" ) #stuck at div = 732
for(div in divs) { run_y <- fpemmodeling::do_1country_run( is_in_union = "Y", service_stats = FALSE, division_numeric_code = div, first_year = first_year, last_year = last_year, UNPD_zero = TRUE ) run_n <- fpemmodeling::do_1country_run( is_in_union = "N", service_stats = FALSE, division_numeric_code = div, first_year = first_year, last_year = last_year, UNPD_zero = TRUE ) core_data <- run_y$core_data core_data$observations <- rbind(run_y$core_data$observations, run_n$core_data$observations) samples_all <- fpemmodeling::posterior_samples_all_women( in_union_posterior_samples = run_y$posterior_samples, not_in_union_posterior_samples = run_n$posterior_samples, core_data = core_data ) population_counts <- fpemdata::population_counts %>% dplyr::filter(division_numeric_code == div) results_y <- fpemreporting::fpem_calculate_results( posterior_samples = run_y$posterior_samples, country_population_counts = population_counts %>% dplyr::filter(is_in_union == "Y"), first_year = first_year ) results_n <- fpemreporting::fpem_calculate_results( posterior_samples = run_n$posterior_samples, country_population_counts = population_counts %>% dplyr::filter(is_in_union == "N"), first_year = first_year ) results_all <- fpemreporting::fpem_calculate_results( posterior_samples = samples_all, country_population_counts = population_counts, first_year = first_year ) reslist <- list(results_y = results_y, results_n = results_n, results_all = results_all, core_data = core_data) saveRDS(reslist, file.path("output", paste0("reslist", div, ".rds"))) print(div) }
pl <- list() i <- 0 for(div in divs){ i <- i + 1 reslist <- readRDS(file.path("output", paste0("reslist", div, ".rds"))) templs <- list() pl[[i]] <- fpem_plot_country_results( country_results = reslist$results_y, observations = reslist$core_data$observations, first_year = first_year, last_year = last_year, is_in_union = "Y", indicators = indicators) } pdf("married_track19.pdf", 10,10) i <- 0 for(divname in divnames) { i <- i + 1 grid.arrange(grobs=pl[[i]], top = textGrob(paste("In-union women",divname)) ,ncol=2) } dev.off()
pl <- list() i <- 0 for(div in divs){ i <- i + 1 reslist <- readRDS(file.path("output", paste0("reslist", div, ".rds"))) templs <- list() pl[[i]] <- fpem_plot_country_results( country_results = reslist$results_n, observations = reslist$core_data$observation, first_year = first_year, last_year = last_year, is_in_union = "N", indicators = indicators) } pdf("unmarried_track19.pdf", 10,10) i <- 0 for(divname in divnames) { i <- i + 1 grid.arrange(grobs=pl[[i]], top = textGrob(paste("Not-in-union women",divname)) ,ncol=2) } dev.off()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.