Learn R Programming

socialmixr (version 0.1.6)

contact_matrix: Generate a contact matrix from diary survey data

Description

Samples a contact survey using a bootstrap

Usage

contact_matrix(
  survey,
  countries = c(),
  survey.pop,
  age.limits,
  filter,
  n = 1,
  bootstrap,
  counts = FALSE,
  symmetric = FALSE,
  split = FALSE,
  estimated.contact.age = c("mean", "sample", "missing"),
  missing.participant.age = c("remove", "keep"),
  missing.contact.age = c("remove", "sample", "keep"),
  weights = c(),
  weigh.dayofweek = FALSE,
  sample.all.age.groups = FALSE,
  quiet = FALSE,
  ...
)

Arguments

survey

a survey object

countries

limit to one or more countries; if not given, will use all countries in the survey; these can be given as country names or 2-letter (ISO Alpha-2) country codes

survey.pop

survey population -- either a data frame with columns 'lower.age.limit' and 'population', or a character vector giving the name(s) of a country or countries from the list that can be obtained via wpp_countries; if not given, will use the country populations from the chosen countries, or all countries in the survey if countries is not given

age.limits

lower limits of the age groups over which to construct the matrix

filter

any filters to apply to the data, given as list of the form (column=filter_value) - only contacts that have 'filter_value' in 'column' will be considered

n

number of matrices to sample

bootstrap

whether to sample participants and contacts randomly using a bootstrap; by default, will use bootstrap if n > 1

counts

whether to return counts (instead of means)

symmetric

whether to make matrix symmetric

split

whether to split the number of contacts and assortativity

estimated.contact.age

if set to "mean" (default), people whose ages are given as a range (in columns named "..._est_min" and "..._est_max") but not exactly (in a column named "..._exact") will have their age set to the mid-point of the range; if set to "sample", the age will be sampled from the range; if set to "missing", age ranges will be treated as missing

missing.participant.age

if set to "remove" (default), participants without age information are removed; if set to "keep", participants with missing age are kept and treated as a separate age group

missing.contact.age

if set to "remove" (default), participants that that have contacts without age information are removed; if set to "sample", contacts without age information are sampled from all the contacts of participants of the same age group; if set to "keep", contacts with missing age are kept and treated as a separate age group

weights

columns that contain weights

weigh.dayofweek

whether to weigh the day of the week (weight 5 for weekdays ans 2 for weekends)

sample.all.age.groups

what to do if bootstrapping fails to sample participants from one or more age groups; if FALSE (default), corresponding rows will be set to NA, if TRUE the sample will be discarded and a new one taken instead

quiet

if set to TRUE, output is reduced

...

further arguments to pass to get_survey, check and pop_age (especially column names)

Value

a list of sampled contact matrices, and the underlying demography of the surveyed population

Examples

Run this code
# NOT RUN {
data(polymod)
contact_matrix(polymod, countries = "United Kingdom", age.limits = c(0, 1, 5, 15))
# }

Run the code above in your browser using DataLab