################################################################################
#
#' 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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.