From ceffe8f5b888f09aabc39030dc31a520a8a0b706 Mon Sep 17 00:00:00 2001 From: flaneuse Date: Mon, 15 Aug 2016 15:59:08 -0400 Subject: [PATCH] + geo --- HT_importDHS.R | 137 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 97 insertions(+), 40 deletions(-) diff --git a/HT_importDHS.R b/HT_importDHS.R index dc96a42..526a36d 100644 --- a/HT_importDHS.R +++ b/HT_importDHS.R @@ -2,7 +2,7 @@ # Script to pull data from the Demographic and Health Surveys on variables # related to water, sanitation, and hygiene (WASH) # -# Data are from the 2013 DHS, available at http://dhsprogram.com/what-we-do/survey/survey-display-436.cfm +# Data are from the 2012 DHS, available at http://dhsprogram.com/what-we-do/survey/survey-display-368.cfm # # Laura Hughes, lhughes@usaid.gov, 15 August 2016 # With Patrick Gault (pgault@usaid.gov) and Tim Essam (tessam@usaid.gov) @@ -12,11 +12,7 @@ # ------------------------------------------------------------------------- -# Import data ------------------------------------------------------------- - -# Load necessary packages -library(haven) -library(dplyr) +# Helper functions -------------------------------------------------------- # Function to pull attribute (label, labels) data from Stata format pullAttributes <- function(data) { @@ -32,12 +28,38 @@ pullAttributes <- function(data) { return(df) } +# Function to import shapefiles +importShp = function(workingDir = getwd(), + layerName) { + library(rgdal) + # Check that the layerName doesn't contain any extensions + # Check that layerName exists within the wd + + # Log the current working directory, to change back at the end. + currentDir = getwd() + + # Change directory to the file folder containing the shape file + setwd(workingDir) + + # the dsn argument of '.' says to look for the layer in the current directory. + rawShp = rgdal::readOGR(dsn = ".", layer = layerName) +} + + +# Import data ------------------------------------------------------------- + +# Load necessary packages +library(haven) +library(dplyr) + + + # Read in the base module and the children's #' DHS modules are as follows: #' (from http://dhsprogram.com/data/Dataset-Types.cfm) #' * HR: household data (household level description) -#' * PR: household list (inidividual roster) +#' * PR: household list (individual roster) #' * IR: women's module (one woman/hh) #' * MR: men's module (one man/hh) #' * CR: couple's module @@ -45,9 +67,18 @@ pullAttributes <- function(data) { #' * BR: birth data (birth history of all children) --> fertility / mortality rates #' * WI: wealth index data (for data before 1990 to calcualte wealth index) +# -- Import household data -- hh_raw = read_dta('~/Documents/USAID/Haiti/rawdata/Haiti_DHS2012/hthr61dt/HTHR61FL.DTA') -child_raw = read_dta('~/Documents/USAID/Haiti/rawdata/Haiti_DHS2012/htkr61dt/HTKR61FL.DTA') +# -- Import children's data -- +# NOTE: PR module should be used to reproduce DHS published stats for stunting, not KR (children's module). +child_raw = read_dta('~/Documents/USAID/Haiti/rawdata/Haiti_DHS2012/htpr61dt/HTPR61FL.DTA') + +# -- Import coordinates of clusters -- +geo_raw = importShp(workingDir = '~/Documents/USAID/Haiti/rawdata/Haiti_DHS2012/htge61fl/', + layerName = 'HTGE61FL') + +# Remove labels hh_labels = pullAttributes(hh_raw) child_labels = pullAttributes(child_raw) @@ -55,47 +86,73 @@ hh = removeAttributes(hh_raw) child = removeAttributes(child_raw) -# classify improved/ not improved ----------------------------------------- -# toilets + +# Pull diarrhea, water-sanitation access, geo data ------------------------ +hh = hh %>% + select(hhid, + cluster_id = hv001, + hh_num = hv002, + sample_wt = hv005, + urban = hv025, + region = hv024, + interview_month = hv006, + water_source = hv201, + time2water = hv204, + toilet_source = hv205, + share_toilet = hv225, + num_share_toilet = hv238, + # water_treatment = hv237, hv237a, hv237b, hv237c, hv237d, hv237e, hv237f, hv237x, hv237z, + wealth_idx = hv270) %>% + + filter(region != 11) # Remove those households that were in camps, based on the assumption that they will be different than the rest of the population. + + +# classify improved/ not improved ----------------------------------------- +# Toilets are defined as being 'improved' if they are one of the following types and aren't shared. +# toilet_type code improved +# flush toilet 10 Improved +# flush to piped sewer system 11 Improved +# flush to septic tank 12 Improved +# flush to pit latrine 13 Improved +# flush to somewhere else 14 Improved +# flush, don't know where 15 Improved +# pit toilet latrine 20 Improved +# ventilated improved pit latrine (vip) 21 Improved +# pit latrine with slab 22 Improved +# composting toilet 41 Improved +# no facility 30 open defecation +# no facility/bush/field 31 open defecation +# pit latrine without slab/open pit 23 Unimproved +# bucket toilet 42 Unimproved +# hanging toilet/latrine 43 Unimproved +# toilet hanging (on stilts) 44 Unimproved +# mobile chemical toilet 45 Unimproved +# other 96 Unimproved + +# Water sources are defined as being 'improved' if they are one of the following types and can be reached in <= 30 minutes + +# export types of toilets in survey toilet_types = attr(hh_raw$hv205, 'labels') write.csv(toilet_types, '~/GitHub/Haiti-WASH2016/dataout/DHS_toilet_types.csv') water_types = attr(hh_raw$hv201, 'labels') write.csv(water_types, '~/GitHub/Haiti-WASH2016/dataout/DHS_water_types.csv') -# Pull diarrhea, water-sanitation access, geo data ------------------------ -hh = hh %>% - select(hhid, - interview_month = hv006, interview_year = hv007, - water_source = hv201, - time2water = hv204, - toilet_source = hv205, - share_toilet = hv225, water_treatment = hv237, hv237a, hv237b, hv237c, hv237d, hv237e, hv237f, hv237x, hv237z, - owns_mobile = hv243a, - wealth_idx = hv270, - province = shprov, - munic = shmunic, - barang = shbarang, - ea = shea, - region = shregion, - island_grp = shislgrp) - -diarrhea = hh_raw %>% - select(hhid, sh204m_01, sh204m_02, sh204m_03, sh204m_04, sh204m_05, sh204m_06, sh204m_07, sh204m_08, sh204m_09, sh204m_10, sh204m_11, sh204m_12) %>% - group_by(hhid) %>% - summarise_each(funs(mean)) +# read in Liz Jordan's classification of whether or not a toilet or water source is improved. +toilet_types = read.csv('~/GitHub/Haiti-WASH2016/dataout/DHS_toilet_classification.csv') -# Figuring out Philippines geography -------------------------------------- -# Island Group and Region are the only ones labeled within the dataset and seems to be their primary reporting unit. -# island_grp: 3 [Should be Luzon, Visayas, and Mindanao] -# region: 17 [Wiki says 18 as of 2015 https://en.wikipedia.org/wiki/Regions_of_the_Philippines] -# munic: 48 [Wiki says 1490??!] -# province: 84 [Wiki says 81 provinces https://en.wikipedia.org/wiki/Provinces_of_the_Philippines] -# ea: 87 -# barang: 116 [over 42,000? https://en.wikipedia.org/wiki/Barangay] +# clean and merge geodata ------------------------------------------------- +geo = geo_raw@data %>% + select(cluster_id = DHSCLUST, departement = ADM1NAME, ADM1FIPSNA, urban = URBAN_RURA, lat = LATNUM, lon = LONGNUM) %>% + mutate(urban = ifelse(urban == 'U', 1, + ifelse(urban == 'R', 0, NA))) +library(leaflet) +# quick map of cluster locations +leaflet(geo) %>% + addCircles(~lon, ~lat, radius = 1000) %>% + addProviderTiles("Thunderforest.Landscape") -# df %>% group_by(shmunic) %>% summarise(num=n()) %>% arrange(num) \ No newline at end of file