10 Self-evaluated resilience score (SERS)

In this section, we harmonize variables needed to compute self-evaluated resilience score.

library(haven)
library(labelled) # for general functions to work with labelled data
library(tidyverse) # general wrangling
library(dplyr)
library(Hmisc)
library(gtsummary) # to demonstrate automatic use of variable labels in summary tables
library(readxl)
library(foreign)
library(sjPlot)
library(sjmisc)
library(sjlabelled) # for example efc data set with variable labels
library(stringr)
rm(list = ls())
dir_input_data = "C:/Users/AHema/OneDrive - CGIAR/Desktop/WFP Resilience dataset/data/input_data/Chad"
dir_output_data = "C:/Users/AHema/OneDrive - CGIAR/Desktop/WFP Resilience dataset/data/output_data/Chad"
Chad_Harmonization_variables <- read_excel(paste0(dir_input_data,"/Chad_Harmonization.xlsx"), 
    sheet = "variables_harmonization")
#View(Chad_Harmonization_variables)

Chad_Harmonization_description <- read_excel(paste0(dir_input_data,"/Chad_Harmonization.xlsx"), 
    sheet = "description")
#View(Chad_Harmonization_description)
lst_data = Chad_Harmonization_description$Data
lst_test = Chad_Harmonization_description$Name

for(i in 1:length(lst_data)) {                              # Head of for-loop
  assign(lst_test[i],                                   # Read and store data frames
         read_sav(paste0(dir_input_data,"/",lst_data[i])))
}
for (j in 1:length(lst_test)){
         df=  get(lst_test[j], envir = .GlobalEnv)
          for (i in 1:nrow(Chad_Harmonization_variables)){
            df[,Chad_Harmonization_variables$NewVariable_Name[i]]=ifelse(is.na(Chad_Harmonization_variables[i,lst_test[j]]),NA,df[,Chad_Harmonization_variables[i,lst_test[j]][[1]]])
          }
    
    df<-df %>% select(Chad_Harmonization_variables$NewVariable_Name)
    assign(lst_test[j],                                   # Read and store data frames
         df)
#write_sav(df, paste0(dir_output_data,"/",lst_test[j],".sav"))
#write_dta(df, paste0(dir_output_data,"/",lst_test[j],".dta"))
    

}
Chad_pdm_2022$ID = 1:nrow(Chad_pdm_2022)
sers_variables = Chad_baseline_2018 %>% dplyr::select(gtsummary::starts_with("SERS")) %>% names()

10.1 EA 2020

expss::val_lab(Chad_ea_2020$SERSRebondir)
Chad_ea_2020 <- Chad_ea_2020 %>% 
  dplyr::mutate(across(sers_variables,
                ~labelled(., labels = c(
                  "tout à fait d'accord" = 1,
                  "d'accord" = 2,
                  "ni d'accord ni pas d'accord" = 3,
                  "pas d'accord" = 4,
                  "pas du tout d'accord" = 5
                )
                )
  )
  )

10.2 EA 2021

expss::val_lab(Chad_ea_2021$SERSRebondir)
Chad_ea_2021 <- Chad_ea_2021 %>% 
  dplyr::mutate(across(sers_variables,
                ~labelled(., labels = c(
                  "tout à fait d'accord" = 1,
                  "d'accord" = 2,
                  "ni d'accord ni pas d'accord" = 3,
                  "pas d'accord" = 4,
                  "pas du tout d'accord" = 5
                )
                )
  )
  )

10.3 EA 2022

expss::val_lab(Chad_ea_2022$SERSRebondir)
Chad_ea_2022 <- Chad_ea_2022 %>% 
  dplyr::mutate(across(sers_variables,
                ~labelled(., labels = c(
                  "tout à fait d'accord" = 1,
                  "d'accord" = 2,
                  "ni d'accord ni pas d'accord" = 3,
                  "pas d'accord" = 4,
                  "pas du tout d'accord" = 5
                )
                )
  )
  )

10.4 EA 2023

expss::val_lab(Chad_ea_2023$SERSRebondir)
Chad_ea_2023 <- Chad_ea_2023 %>% 
  dplyr::mutate(across(sers_variables,
                ~labelled(., labels = c(
                  "tout à fait d'accord" = 1,
                  "d'accord" = 2,
                  "ni d'accord ni pas d'accord" = 3,
                  "pas d'accord" = 4,
                  "pas du tout d'accord" = 5
                )
                )
  )
  )

10.5 PDM 2022

expss::val_lab(Chad_pdm_2022$SERSRebondir)
Chad_pdm_2022 <- Chad_pdm_2022 %>% 
  dplyr::mutate(across(sers_variables,
                ~labelled(., labels = c(
                  "tout à fait d'accord" = 1,
                  "d'accord" = 2,
                  "ni d'accord ni pas d'accord" = 3,
                  "pas d'accord" = 4,
                  "pas du tout d'accord" = 5
                )
                )
  )
  )

10.6 PDM 2023

expss::val_lab(Chad_pdm_2023$SERSRebondir)
Chad_pdm_2023 <- Chad_pdm_2023 %>% 
  dplyr::mutate(across(sers_variables,
                ~labelled(., labels = c(
                  "tout à fait d'accord" = 1,
                  "d'accord" = 2,
                  "ni d'accord ni pas d'accord " = 3,
                  "pas d'accord" = 4,
                  "pas du tout d'accord" = 5
                )
                )
  )
  )

10.7 Merging all data

df_2020 = Chad_ea_2020 %>% dplyr::select(ID,sers_variables)
df_2021 = Chad_ea_2021 %>% dplyr::select(ID,sers_variables)
df_2022 = Chad_ea_2022 %>% dplyr::select(ID,sers_variables)
df_2023 = Chad_ea_2023 %>% dplyr::select(ID,sers_variables)
df_pdm_2022 = Chad_pdm_2022 %>% dplyr::select(ID,sers_variables)
df_pdm_2023 = Chad_pdm_2023 %>% dplyr::select(ID,sers_variables)
df_Chad<-plyr::rbind.fill(df_2020,
df_2021,
df_2022,
df_2023,
df_pdm_2022,
df_pdm_2023)
df_Chad$ID = as.character(df_Chad$ID)

10.8 Export all data

haven::write_dta(df_Chad,paste0(dir_output_data,"/","WFP_Chad_SERS.dta"))

📘 Cost Benefit Analysis of WFP Resilience Interventions in Chad, 2018-2023

By Aboubacar Hema and Wim MarivoetIFPRI Dakar, 2025.

📁 Code source available on GitHub · Powered by Bookdown