R/sanitation.R

Defines functions get_sanitation_vars

Documented in get_sanitation_vars

################################################################################
#
#' Calculate sanitation indicators
#'
#' @param surveyData A data frame containing information for calculating
#'     sanitation indicators
#' @return A data frame containing calculated sanitation indicators
#' @examples
#' # Apply function to surveyDataBGD
#' sanDF <- get_sanitation_vars(washdata::surveyDataBGD)
#' sanDF
#' 
#' @export
#'
#
################################################################################

get_sanitation_vars <- function(surveyData) {
  ## san1: shared sanitation facility - user arrangements
  ## Re-code
  san1 <- ifelse(surveyData$san1 == "", "Don't know",
            ifelse(surveyData$san1 == "Other (please specify)", 
              surveyData$san2, surveyData$san1))
  ## Clean-up
  san1 <- ifelse(san1 == "Communal / shared toilet ", "Communal / shared toilet", san1)
  ## san1a: is toilet facility shared with other households
  san1a <- ifelse(san1 == "Household toilet", 0, 1)
  ## san2: Mean number of people who share toilet facilities
  san2 <- ifelse(is.na(surveyData$san4), 0, surveyData$san4)
  ## san2a: shared toilet facility 
  san2a <- ifelse(san2 == 0, 0, 1)
  ## san3: type  of facility
  san3 <- ifelse(surveyData$san6 == "Other (please specify)", 
                 surveyData$san7, 
                 surveyData$san6)
  ## clean-up
  san3 <- ifelse(san3 %in% c("Drain", "Drain connected with waterbody", 
                             "Drain with water body (Jhill)", "Open drain"), "Drain",
                 ifelse(san3 %in% c("In water body (Jhill)", "Water body (Lake)", "Lake", "Pond",
                                    "No facilities or bush or field"), 
                        "No facilities or bush or field or lake or pond",
                        ifelse(san3 %in% c("Ditch with ring", "Ring and slub", 
                                           "Slub and in the bottom drain"), 
                               "Ring and slab without pit latrine", san3)))
  ## san4: where effluent flushes to
  san4 <- ifelse(surveyData$san9 == "", "Don't know",
                 ifelse(surveyData$san9 == "Other (please specify)", 
                        surveyData$san10, 
                        surveyData$san9))
  ## clean-up
  san4 <- ifelse(san4 %in% c("Open drain", 
                             "Adjacent to pond", 
                             "Ditch", 
                             "Ditch ",
                             "pond", 
                             "River", 
                             "Water body (Cannel)"), "Open drain/ditch/water body", 
                 ifelse(san4 == "Tanki", "Septic tank", san4))
  ## san5: WSUP-supported facility
  san5 <- ifelse(surveyData$san12 == "" & surveyData$san13 == "TRUE", "Not applicable",
                 ifelse(surveyData$san12 == "" & surveyData$san14 == "TRUE", 
                        "Don't know", 
                        surveyData$san12))
  ## re-code
  san5 <- ifelse(san5 == "Yes", 1,
                 ifelse(san5 == "No", 0, NA))
  ## san6: water in facility (Yes / No)
  san6 <- ifelse(surveyData$san15 == "Yes", 1, 0)
  ## san7: satisfied with handwashing facility
  san7 <- ifelse(surveyData$san17 == "Yes", 1, 0)
  ## san8: what would increase your satisfaction
  sanSatisfaction <- ifelse(surveyData$san19 == "Other (please specify)", 
                            surveyData$san20, 
                            surveyData$san19)
  sanSatisfaction <- ifelse(sanSatisfaction == "", 
                            NA, 
                            sanSatisfaction)
  sanSatisfaction <- str_split(string = sanSatisfaction, pattern = ", ", simplify = TRUE)
  ## Cycle through columns of sanSatisfaction
  for(i in 1:ncol(sanSatisfaction)) {
    sanSatisfaction[ , i] <- ifelse(sanSatisfaction[ , i] == "Other (please specify)", 
                                    surveyData$san20, 
                                    sanSatisfaction[ , i])
    sanSatisfaction[ , i] <- ifelse(sanSatisfaction[ , i] == "", 
                                    NA, 
                                    sanSatisfaction[ , i])
  }
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of sanSatisfaction
  for(i in 1:ncol(sanSatisfaction)) {
    ## Concatenate sanSatisfaction columns into a single vector
    temp <- c(temp, sanSatisfaction[ , i])
  }
  ## Re-assign NA value to "" answers 
  temp <- ifelse(temp == "", NA, temp)
  ## Get responses
  tempNames <- names(table(temp))
  ## Vector accumulator
  san8 <- NULL
  ## Cycle through responses
  for(i in 1:length(tempNames)) {
    ## Create empty vector with length of surveyData
    assign(paste("san8", letters[i], sep = ""), 
           vector(mode = "numeric", length = nrow(surveyData)))
    ## Cycle through data columns in waterCollect
    for(j in 1:ncol(sanSatisfaction)) {
      ## Assign values
      x <- ifelse(sanSatisfaction[ , j] == tempNames[i], i, 0)
      ## Concatenate responses
      assign(paste("san8", letters[i], sep = ""), 
             get(paste("san8", letters[i], sep = "")) + x)
    }
    ## Rename responses to character strings
    assign(paste("san8", letters[i], sep = ""), 
           ifelse(get(paste("san8", letters[i], sep = "")) == i, tempNames[i], NA))
    ## Concatenate into data.frame
    san8 <- data.frame(cbind(san8, get(paste("san8", letters[i], sep = ""))))
  }
  ## Rename the data.frame
  names(san8) <- paste("san8", letters[1:length(tempNames)], sep = "")
  ## san9: lights in toilet facility
  san9 <- ifelse(surveyData$san22 == "Yes", 1, 0)
  ## san10: lockable door
  san10 <- ifelse(surveyData$san24 == "Yes", 1, 0)
  ## san11: container for menstrual hygiene management
  san11 <- ifelse(surveyData$san26 == "Yes", 1, 0)
  ## san12: sanitary disposal of child's faeces
  san12 <- ifelse(surveyData$san28 %in% c("Child used toilet/latrine", 
                                          "Put/rinsed into the toilet"), 1, 0)
  ## san13: Waiting time to use the toilet
  san13 <- ifelse(is.na(surveyData$san31), 0, surveyData$san31)
  ## san13a: adequate physical access to sanitation facility
  san13a <- ifelse(san13 < 30, 1, 0)
  ## san14: spend on sanitation facility
  san14 <- ifelse(is.na(surveyData$san33), 0, surveyData$san33)
  ## san15: satisfied with spend
  san15 <- ifelse(surveyData$san36 == "", NA,
                  ifelse(surveyData$san36 == "Yes", 1, 0))
  ## san16: initial investment in toilet facility
  san16 <- ifelse(surveyData$san38 == "Yes", 1, 0)
  ## san17: amount of investment
  san17 <- ifelse(is.na(surveyData$san40), 0, surveyData$san40)
  ## san18: willingness to invest
  san18 <- ifelse(surveyData$san43 == "Yes", 1, 0)
  ## san19: satisfied with cleanliness
  san19 <- ifelse(surveyData$san46 == "Yes", 1,
                  ifelse(surveyData$san46 == "No", 0, NA))
  ## Re-code
  cleanSatisfaction <- ifelse(surveyData$san48 == "Other (please specify)", 
                              surveyData$san49, 
                              surveyData$san48)
  cleanSatisfaction <- ifelse(cleanSatisfaction == "", 
                              NA, 
                              cleanSatisfaction)
  cleanSatisfaction <- str_split(string = cleanSatisfaction, pattern = ", ", simplify = TRUE)
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of cleanSatisfaction
  for(i in 1:ncol(cleanSatisfaction)) {
    ## Re-code 
    cleanSatisfaction[ , i] <- ifelse(cleanSatisfaction[ , i] == "Other (please specify)", 
                                      surveyData$san20, cleanSatisfaction[ , i])
    cleanSatisfaction[ , i] <- ifelse(cleanSatisfaction[ , i] == "", 
                                      NA, cleanSatisfaction[ , i])
  }
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of cleanSatisfaction
  for(i in 1:ncol(cleanSatisfaction)) {
    ## Concatenate cleanSatisfaction columns into a single vector
    temp <- c(temp, cleanSatisfaction[ , i])
  }
  ## Re-assign NA value to "" answers 
  temp <- ifelse(temp == "", NA, temp)
  ## Get responses
  tempNames <- names(table(temp))
  ## Empty container
  san20 <- NULL
  ## Cycle through responses
  for(i in 1:length(tempNames)) {
    ## Create empty vector with length of surveyData
    assign(paste("san20", letters[i], sep = ""), 
           vector(mode = "numeric", length = nrow(surveyData)))
    ## Cycle through data columns in cleanSatisfaction
    for(j in 1:ncol(cleanSatisfaction)) {
      ## Assign values
      x <- ifelse(cleanSatisfaction[ , j] == tempNames[i], i, 0)
      ## Concatenate responses
      assign(paste("san20", letters[i], sep = ""), 
             get(paste("san20", letters[i], sep = "")) + x)
    }
    ## Rename responses to character strings
    assign(paste("san20", letters[i], sep = ""), 
           ifelse(get(paste("san20", letters[i], sep = "")) == i, tempNames[i], NA))
    ## Concatenate into data.frame
    san20 <- data.frame(cbind(san20, get(paste("san20", letters[i], sep = ""))))
  }
  ## Rename the data.frame
  names(san20) <- paste("san20", letters[1:length(tempNames)], sep = "")
  ## san21: everyone in household able to get to sanitation facility
  san21 <- ifelse(surveyData$san51 == "Yes", 1, 0)
  ## san22: who is not using the sanitation facility?
  sanitationUse <- ifelse(surveyData$san53 == "", NA,
                          ifelse(surveyData$san53 == "Other (please specify)", 
                                 surveyData$san54, 
                                 surveyData$san53))
  sanitationUse <- str_split(string = sanitationUse, pattern = ", ", simplify = TRUE)
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of sanitationUse
  for(i in 1:ncol(sanitationUse)) {
    sanitationUse[ , i] <- ifelse(sanitationUse[ , i] == "Other (please specify)", 
                                  surveyData$san20, sanitationUse[ , i])
    sanitationUse[ , i] <- ifelse(sanitationUse[ , i] == "", 
                                  NA, sanitationUse[ , i])
  }
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of sanitationUse
  for(i in 1:ncol(sanitationUse)) {
    ## Concatenate sanitationUse columns into a single vector
    temp <- c(temp, sanitationUse[ , i])
  }
  ## Re-assign NA value to "" answers 
  temp <- ifelse(temp == "", NA, temp)
  ## Get responses
  tempNames <- names(table(temp))
  ## Vector accumulator
  san22 <- NULL
  ## Cycle through responses
  for(i in 1:length(tempNames)) {
    ## Create empty vector with length of surveyData
    assign(paste("san22", letters[i], sep = ""), 
           vector(mode = "numeric", length = nrow(surveyData)))
    ## Cycle through data columns in waterCollect
    for(j in 1:ncol(sanitationUse)) {
      ## Assign values
      x <- ifelse(sanitationUse[ , j] == tempNames[i], i, 0)
      ## Concatenate responses
      assign(paste("san22", letters[i], sep = ""), 
             get(paste("san22", letters[i], sep = "")) + x)
    }
    ## Rename responses to character strings
    assign(paste("san22", letters[i], sep = ""), 
           ifelse(get(paste("san22", letters[i], sep = "")) == i, tempNames[i], NA))
    ## Concatenate into data.frame
    san22 <- data.frame(cbind(san22, get(paste("san22", letters[i], sep = ""))))
  }
  ## Rename the data.frame
  names(san22) <- paste("san22", letters[1:length(tempNames)], sep = "")
  ## san23: do all household members usually use the available sanitation facilities
  san23 <- ifelse(surveyData$san59 == "", "Don't know", surveyData$san59)
  san23 <- ifelse(san23 == "Yes", 1,
                  ifelse(san23 == "No", 0, NA))
  ## san24: who is not using sanitation facilities
  sanitationUsage <- ifelse(surveyData$san61 == "", NA,
                            ifelse(surveyData$san61 == "Other (please specify)", 
                                   surveyData$san62, surveyData$san61))
  sanitationUsage <- str_split(string = sanitationUsage, pattern = ", ", simplify = TRUE)
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of sanitationUsage
  for(i in 1:ncol(sanitationUsage)) {
    ## Assign values
    sanitationUsage[ , i] <- ifelse(sanitationUsage[ , i] == "Other (please specify)", 
                                    surveyData$san62, 
                                    sanitationUsage[ , i])
    sanitationUsage[ , i] <- ifelse(sanitationUsage[ , i] == "", 
                                    NA, 
                                    sanitationUsage[ , i])
  }
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of sanitationUsage
  for(i in 1:ncol(sanitationUsage)) {
    ## Concatenate sanitationUsage columns into a single vector
    temp <- c(temp, sanitationUsage[ , i])
  }
  ## Re-assign NA value to "" answers 
  temp <- ifelse(temp == "", NA, temp)
  ## Get responses
  tempNames <- names(table(temp))
  ## Vector accumulator
  san24 <- NULL
  ## Cycle through responses
  for(i in 1:length(tempNames)) {
    ## Create empty vector with length of surveyData
    assign(paste("san24", letters[i], sep = ""), 
           vector(mode = "numeric", length = nrow(surveyData)))
    ## Cycle through data columns in waterCollect
    for(j in 1:ncol(sanitationUsage)) {
      ## Assign values
      x <- ifelse(sanitationUsage[ , j] == tempNames[i], i, 0)
      ## Concatenate responses
      assign(paste("san24", letters[i], sep = ""), 
             get(paste("san24", letters[i], sep = "")) + x)
    }
    ## Rename responses to character strings
    assign(paste("san24", letters[i], sep = ""), 
           ifelse(get(paste("san24", letters[i], sep = "")) == i, tempNames[i], NA))
    ## Concatenate data.frame
    san24 <- data.frame(cbind(san24, get(paste("san24", letters[i], sep = ""))))
  }
  ## Rename the data.frame
  names(san24) <- paste("san24", letters[1:length(tempNames)], sep = "")
  ## san25: problem with sanitation facility
  san25 <- ifelse(surveyData$san66 == "", "Don't know", 
                  ifelse(surveyData$san66 == "Other (please specify)", 
                         surveyData$san67, 
                         surveyData$san66))
  san25 <- ifelse(san25 == "", "Don't know", san25)
  ## Clean-up
  san25 <- ifelse(san25 %in% c("Call sweeper by own intiative ", 
                               "Do work by calling sweeper"), 
                  "Call sweeper by own intiative",
                  ifelse(san25 == "Manager ", "Manager",
                         ifelse(san25 == "Quarter inside university, so the relevant person of university", 
                                "Responsible university staff", 
                                san25)))
  ## Re-code: formal service maintainer
  san25 <- ifelse(san25 %in% c("Facility operator", 
                               "Quarter inside university, so the relevent person of university", 
                               "Water and Sanitation Authority  (WASHA)"), 1, 0)
  ## san31: when should you wash hands?
  washEvents <- ifelse(surveyData$san85 == "", "Don't know",
                       ifelse(surveyData$san85 == "Other (please specify)", 
                              surveyData$san86, 
                              surveyData$san85))
  washEvents <- str_split(string = washEvents, pattern = ", ", simplify = TRUE)
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of washEvents
  #
  for(i in 1:ncol(washEvents)) {
    ## Assign values
    washEvents[ , i] <- ifelse(washEvents[ , i] == "Other (please specify)", 
                               surveyData$san86, 
                               washEvents[ , i])
  }
  ## Create temporary container for vector outputs
  temp <- NULL
  ## Cycle through columns of washEvents
  for(i in 1:ncol(washEvents)) {
    ## Concatenate washEvents columns into a single vector
    temp <- c(temp, washEvents[ , i])
  }
  ## Re-assign NA value to "" answers 
  temp <- ifelse(temp == "", NA, temp)
  ## Get responses
  tempNames <- names(table(temp))
  ## Vector accumulator
  san31 <- NULL
  ## Cycle through responses
  for(i in 1:length(tempNames)) {
    ## Create empty vector with length of surveyData
    assign(paste("san31", letters[i], sep = ""), 
           vector(mode = "numeric", length = nrow(surveyData)))
    ## Cycle through data columns in waterCollect
    for(j in 1:ncol(washEvents)) {
      ## Assign values
      x <- ifelse(washEvents[ , j] == tempNames[i], i, 0)
      ## Concatenate responses
      assign(paste("san31", letters[i], sep = ""), 
             get(paste("san31", letters[i], sep = "")) + x)
    }
    ## Rename responses to character strings
    assign(paste("san31", letters[i], sep = ""), 
           ifelse(get(paste("san31", letters[i], sep = "")) == i, tempNames[i], NA))
    ## Concatenate into data.frame
    san31 <- data.frame(cbind(san31, get(paste("san31", letters[i], sep = ""))))
  }
  ## Rename the data.frame
  names(san31) <- paste("san31", letters[1:length(tempNames)], sep = "")
  ## san32: households with handwashing facility with soap and water at sanitation facility
  san32 <- ifelse(surveyData$san88 == "Handwashing station with clean water and soap available", 1, 0)
  ## san33: how often is septic tank emptied
  san33 <- ifelse(surveyData$san90 == "Other (please specify)", surveyData$san91,
                  ifelse(surveyData$san90 == "" & surveyData$san92 == TRUE, NA,
                         ifelse(surveyData$san90 == "" & surveyData$san93 == TRUE, "Don't know", surveyData$san90)))
  ## clean-up
  san33 <- ifelse(!san4 %in% c("Pit latrine", "Septic tank"), NA,
                  ifelse(san33 %in% c("new house", "Did not empty till now"), "Don't know",
                         ifelse(san33 %in% c("Stool go to pond", 
                                             "Stool go to the cannal"), NA, 
                                san33)))
  ## san34: cost of empyting tank
  san34 <- ifelse(surveyData$san94 == "", NA, surveyData$san94)
  ## san35: who empties pit
  san35 <- ifelse(surveyData$san98 == "", "Don't know/not applicable",
                  ifelse(surveyData$san98 == "Other (please specify)", 
                         surveyData$san99, 
                         surveyData$san98))
  ## Clean-up
  san35a <- ifelse(san35 == "House owner ", "House owner",
                   ifelse(san35 == "Sweeper ", "Sweeper",
                          ifelse(san35 == "By own", "Family member or informal manual emptier", san35)))
  ## Re-code
  san35 <- ifelse(san35a %in% c("Formal larger business", 
                                "Formal small business using manual or automated tool",
                                "Water and Sanitation Authority  (WASHA)"), 1, 0)
  ## san36: who pays for pit to be emptied
  san36 <- ifelse(surveyData$san102 == "", "Don't know/not applicable",
                  ifelse(surveyData$san102 == "Other (please specify)", 
                         surveyData$san103, 
                         surveyData$san102))
  ## Clean-up
  san36 <- ifelse(san36 == "Water and Sanitation Authority  (WASHA)", 
                  "Water and Sanitation Authority (WASHA)",
                  ifelse(san36 == "City corporation ", 
                         "City corporation",
                         ifelse(san36 == "Owner of house ", 
                                "Owner of house", san36)))
  ## Re-code san34 to take into account who pays for pit emptying
  san34a <- ifelse(san36 != "My household", NA, san34)
  ## san37: satisfaction with pit emptying service
  san37 <- ifelse(surveyData$san106 == "", NA,
                  ifelse(surveyData$san106 == "Yes", 1, 0))
  ## san38: excreta disposal after emptying tank
  #
  ## Check if excreta disposal after emtpying data avaiable
  if(exists("excretaDisposalDF")) {
    ## Add re-code logic here using excreta disposal data to create
    ## object called san38
  } else {
    san38 <- vector(mode = "numeric", length = nrow(surveyData))
    san38[san38 == 0] <- NA
  }
  ## JMP Post-2015 sanitation indicators
  ## jmpSan1: open defecation
  jmpSan1 <- ifelse(san3 == "No facilities or bush or field or lake or pond", 1, 0)
  ## jmpSan2: unimproved sanitation facilities
  jmpSan2 <- ifelse(san3 %in% c("Hanging toilet/hanging latrine",
                                "Pit latrine without slab/open pit",
                                "Ring and slab without pit latrine",
                                "Drain"), 1, 0)
  ## jmpSan3: limited sanitation facility
  jmpSan3 <- ifelse(san3 %in% c("Flush/pour flush", 
                                "Pit latrine with slab or ventilated improved pit latrine (VIP)",
                                "Portable toilet with emptying service", 
                                "Composting toilet") &
                      san4 %in% c("Piped sewer system", "Pit latrine", "Septic tank", "Don't know") &
                      san1a == 1, 1, 0)
  ## jmpSan4: at least basic
  jmpSan4 <- ifelse(san3 %in% c("Flush/pour flush", 
                                "Pit latrine with slab or ventilated improved pit latrine (VIP)",
                                "Portable toilet with emptying service", 
                                "Composting toilet") &
                      san4 %in% c("Piped sewer system", "Pit latrine", "Septic tank", "Don't know") &
                      san1a == 0, 1, 0)
  ## jmpSan5: empty
  jmpSan5 <- vector(mode = "numeric", length = nrow(surveyData))
  jmpSan5[jmpSan5 == 0] <- NA
  ## Check if excretaDisposalDF is available
  if(exists("excretaDisposalDF")) {
    ## jmpSan4: basic sanitation facility
    jmpSan4 <- vector(mode = "numeric", length = nrow(surveyData))
    ## Basic sanitation services - pit latrine system
    jmpSan4[san3 %in% c("Pit latrine with slab or ventilated improved pit latrine (VIP)",
                        "Composting toilet") &
              san4 != "Piped sewer system" &
              san1a == 0 & 
              san33 != "Have never emptied it before" &
              !san38 %in% c("To a covered and sealed hole (buried)", 
                            "Taken away through the sewer system to a treatment facility", 
                            "Taken away by the service provider to a treatment facility")] <- 1          
    ## Basic sanitation services - flush/pour flush/toilet system without piped water system
    jmpSan4[san3 %in% c("Flush/pour flush", 
                        "Portable toilet with emptying service") &
              san4 != "Piped sewer system" &
              san1a == 0 &
              !san38 %in% c("To a covered and sealed hole (buried)", 
                            "Taken away through the sewer system to a treatment facility", 
                            "Taken away by the service provider to a treatment facility")] <- 1
    ## jmpSan5: safely managed
    jmpSan5 <- vector(mode = "numeric", length = nrow(surveyData))
    ##
    jmpSan5[san3 %in% c("Flush/pour flush", 
                        "Portable toilet with emptying service") &
              san4 == "Piped sewer system" &
              san1a == 0] <- 1
    ##
    jmpSan5[san3 %in% c("Flush/pour flush", 
                        "Portable toilet with emptying service") &
              san4 %in% c("Pit latrine", 
                          "Septic tank", 
                          "Don't know") &
              san1a == 0 &
              san38 %in% c("To a covered and sealed hole (buried)", 
                           "Taken away through the sewer system to a treatment facility", 
                           "Taken away by the service provider to a treatment facility")] <- 1
    ##
    jmpSan5[san3 %in% c("Pit latrine with slab or ventilated improved pit latrine (VIP)",
                        "Composting toilet") &
              san4 != "Piped sewer system" &
              san1a == 0 & 
              (san33 == "Have never emptied it before" |
                 san38 %in% c("To a covered and sealed hole (buried)", 
                              "Taken away through the sewer system to a treatment facility", 
                              "Taken away by the service provider to a treatment facility"))] <- 1
  }
  ## Adequate sanitaiton facility
  adequateSan <- ifelse(san3 %in% c("Flush/pour flush", 
                                    "Pit latrine with slab or ventilated improved pit latrine (VIP)") &
                          san4 != "Open drain / ditch / water body", 1, 0)
  ## Accessible sanitation facility
  accessSan <- ifelse(san21 == 1 & san23 == 1, 1, 0)
  ## Acceptable sanitation facility 
  ## Re-code for proportion indicator
  acceptSan <- ifelse(adequateSan == 1 & 
                        san6 == 1 & 
                        san9 == 1 & 
                        san10 == 1 & 
                        san11 == 1, 1, 0)
  ## Re-code for mean indicator
  acceptDF <- data.frame(adequateSan, san6, san9, san10, san11)
  ## Get acceptable sanitaiton score (0-5)
  acceptScore <- rowSums(acceptDF, na.rm = TRUE)
  ## Create sanDF
  ## Concatenate sanitation indicators
  sanDF <- data.frame("uniqueID" = surveyData[ , "uniqueID"],
                      san1, san1a, san2, san2a, san3, san4, san5, san6, san7, san8,
                      san9, san10, san11, san12, san13, san13a, san14, san15, san16, 
                      san17, san18, san19, san20, san21, san22, san23, san24, san25, 
                      san32, san33, san34, san34a, san35, san35a, san36, san37,
                      jmpSan1, jmpSan2, jmpSan3, jmpSan4, jmpSan5,
                      adequateSan, accessSan, acceptSan, acceptScore)
  return(sanDF)
}
validmeasures/wsup documentation built on Dec. 16, 2019, 4:50 a.m.