Skip to contents

Searches across datasets specified for requested survey variable definitions. This function (or search_variable_labels) should be used to provide the `questions` argument for extract_dhs.

Usage

search_variable_labels(
  dataset_filenames,
  search_terms = NULL,
  essential_terms = NULL,
  regex = NULL,
  ...
)

Arguments

dataset_filenames

The desired filenames to be downloaded. These can be found as one of the returned fields from dhs_datasets.

search_terms

Character vector of search terms. If any of these terms are found within the survey question definitions, the corresponding survey variable and definitions will be returned.

essential_terms

Character pattern that has to be in the definitions of survey question definitions. I.e. the function will first find all survey variable definitions that contain your `search_terms` (or regex) OR `essential_terms`. It will then remove any questions that did not contain your `essential_terms`. Default = `NULL`.

regex

Regex character pattern for matching. If you want to specify your regex search pattern, then specify this argument. N.B. If both `search_terms` and `regex“ are supplied as arguments then regex will be ignored.

...

Any other arguments to be passed to download_datasets

Value

A data.frame of the surveys where matches were found and then all the resultant codes and descriptions.

Details

Use this function after get_datasets to query downloaded datasets for what survey questions they asked. This function will look for your downloaded and imported survey datasets from your cached files, and will download them if not downloaded.

Examples

if (FALSE) { # \dontrun{
# get the model datasets included with the package
model_datasets <- model_datasets

# download two of them
g <- get_datasets(dataset_filenames = model_datasets$FileName[1:2])

# and now seearch within these for survey variable labels of interest
vars <- search_variable_labels(
dataset_filenames = names(g), search_terms = "fever"
)

head(vars)

# if we specify an essential term then no results will be returned from
# a dataset if it does not have any results from the search with this term
search_variable_labels(
dataset_filenames = names(g),
search_terms = "fever",
essential_terms = "primaquine",
)

# we can also use regex queries if we prefer, by passing `regex = TRUE`
vars <- search_variable_labels(
dataset_filenames = names(g), search_terms = "fever|net", regex = TRUE
)
} # }