R/hygiene.R

Defines functions get_hygiene_vars

Documented in get_hygiene_vars

################################################################################
#
#' Calculate hygiene indicators
#'
#' @param surveyData A data frame with information for calculating hygiene
#'     indicators
#' @return A data frame containing calculated hygiene indicators
#' @examples
#' # apply get_hygiene_vars() to surveyDataBGD dataset
#' hygieneDF <- get_hygiene_vars(washdata::surveyDataBGD)
#' 
#' @export
#' 
#
################################################################################

get_hygiene_vars <- function(surveyData) {
  ## san26: feel safe with sanitation facility
  san26 <- ifelse(surveyData$san70 == "Yes", 1, 0)
  ## san27: feel safe using facility during menstruation
  san27 <- ifelse(surveyData$san74 == "Yes", 1,
             ifelse(surveyData$san74 == "No", 0, NA))
  ## jmpWoman: girls and women comfortable with using facility
  jmpWoman <- ifelse(san26 == 1 & san27 == 1, 1, 0)
  ## san28: material used for menstruation - clean menstrual management material
  san28 <- ifelse(surveyData$san79 == "", "Don't know",
             ifelse(surveyData$san79 == "Other (please specify)", 
               surveyData$san80, surveyData$san79))
  ## Re-code
  san28 <- ifelse(san28 == "", "Don't know", san28)
  ## Clean-up - report as NA those who report not having a period/no need;
  ##          these lines of code [63-68] are Dhaka, Bangladesh specific
  san28a <- ifelse(san28 %in% c("Cycle did not resume after birth", 
                                "Menstrual cycle stopped", 
                                "None aged of cycle", 
                                "Pragnent", 
                                "Ovary removed"), NA,
              ifelse(san28 == "Tissu paper", "Tissue paper", san28))
  ## Re-code
  san28 <- ifelse(san28a == "Don't know", NA,
             ifelse(san28a %in% c("Cloth", "Napkin/pad"), 1, 0))
  ## san29: Appropriate menstrual cloth cleansing
  san29 <- ifelse(surveyData$san81 == "", NA,
             ifelse(surveyData$san81 == "Other (please specify)", 
               surveyData$san82, surveyData$san81))
  ## Re-code for estimation
  san29 <- ifelse(san28a == "Napkin/pad", NA,
             ifelse(san28a == "Cloth" & san29 %in% c("Water and soap", 
               "Do not use again, disposed"), 1, 0))
  ## san30: Appropriate disposal of sanitary napkin
  san30 <- ifelse(surveyData$san83 == "", NA,
             ifelse(surveyData$san83 == "Other (please specify)", 
               surveyData$san84, surveyData$san83))
  ## Clean-up: these lines of code [109-114] is Dhaka, Bangladesh 2017 specific
  san30 <- ifelse(san30 %in% c("Garbage  basket", 
                               "Garbage basket in the sanitation facility", 
                               "Garbage disposal", 
                               "Under the soil by making ditch"), "Garbage disposal",
             ifelse(san30 == "Water body (Khal/Jhill)", "Water body (lake/river/pond)",
               ifelse(san30 %in% c("Menstrual cycle stopped", "Pragnent"), NA, san30)))
  ## Re-code for estimation
  san30 <- ifelse(san28a == "Cloth", NA,
             ifelse(san28a == "Napkin/pad" & san30 == "Garbage disposal", 1, 0))
  ## jmpWomenHygiene: Good menstrual hygiene practice
  jmpWomenHygiene <- ifelse(san29 == 1 | san30 == 1, 1, 0)
  ## Create hygieneDF
  hygieneDF <- data.frame("uniqueID" = surveyData[ , "uniqueID"],
                          san26, san27, san28, san28a, san29, san30, 
                          jmpWoman, jmpWomenHygiene)
  ## Return output
  return(hygieneDF)
}
validmeasures/wsup documentation built on Dec. 16, 2019, 4:50 a.m.