Create HospiNet object from subject database
Source:R/NetworkBuilding.R
hospinet_from_subject_database.Rd
This function creates a HospiNet object from the database containing subjects stays.
Usage
hospinet_from_subject_database(
base,
window_threshold = 365,
count_option = "successive",
condition = "dates",
prob_params = c(0.0036, 1/365, 0.128),
noloops = TRUE,
nmoves_threshold = NULL,
flag_vars = NULL,
flag_values = NULL,
keep_nodes = FALSE,
create_MetricsTable = TRUE,
verbose = FALSE,
shinySession = NULL,
...
)
Arguments
- base
(hospinet.base) A database of records of stays of subjects in facilities. This can be obtained using the function
checkBase
.- window_threshold
(numeric) A threshold for the number of days between discharge and admission to be counted as a transfer. Set to 0 for same day transfer, default is 365 days.
- count_option
(character) TODO. Default is "successive".
- condition
(character) TODO. Default is "dates".
- prob_params
(vector of numeric) Three numerical values to calculate the probability that a movement causes an introduction from hospital A to hospital B. See Donker T, Wallinga J, Grundmann H. (2010) <doi:10.1371/journal.pcbi.1000715> for more details. prob_params[1] is the rate of acquisition in hospital A (related to LOS in hospital A). Default: 0.0036 prob_params[2] is the rate of loss of colonisation (related to time between admissions). Default: 1/365 prob_params[4] is the rate of transmission to other patients in hospital B (related to LOS in hospital B). Default: 0.128
- noloops
(boolean). Should transfers within the same nodes (loops) be kept or set to 0. Defaults to TRUE, removing loops (setting matrix diagonal to 0).
- nmoves_threshold
(numeric) A threshold for the minimum number of subject transfer between two facilities. Set to NULL to deactivate, default to NULL.
- flag_vars
(list) Additional variables that can help flag a transfer, besides the dates of admission and discharge. Must be a named list of two character vectors which are the names of the columns that can flag a transfer: the column that can flag a potential origin, and the column that can flag a potential target. The list must be named with "origin" and "transfer". Eg: list("origin" = "var1", "target" = "var2"). See details.
- flag_values
(list) A named list of two character vectors which contain the values of the variables in flag_var that are matched to flag a potential transfer. The list must be named with "origin" and "transfer". The character vectors might be of length greater than one. Eg: list("origin" = c("value1", "value2"), "target" = c("value2", "value2")). The values in 'origin' and 'target' are the values that flag a potential origin of a transfer, or a potential target, respectively. See details.
- keep_nodes
(logical) Should nodes with no connections be kept in the edgelist? Defaults to FALSE.
- create_MetricsTable
(boolean) Should the metrics table be created along with the network. Setting to FALSE will speed up the results. Default is TRUE.
- verbose
TRUE to print computation steps
- shinySession
(NULL) internal variable to deal with the progress bar
- ...
Additional parameters to be sent to checkBase in case the database has not been checked yet.
Details
This function will build a HospiNet object from a line-listed
subject database. The HospiNet object has all of the functions stored as
active bindings which can be accessed in the usual way. For more info, see
HospiNet
.
Note that the subject database will need to be run through checkBase
before going into this function.
Examples
mydb <- create_fake_subjectDB(n_subjects = 100, n_facilities = 10)
myBase <- checkBase(mydb)
#> Checking for missing values...
#> Checking for duplicated records...
#> Removed 0 duplicates
#> Done.
hospinet_from_subject_database(myBase)
#> 10 facilities and 139 movements.
#> Movement window is 365 days.
#> Constructing full matrix
#> f01 f02 f03 f04 f05 f06 f07 f08 f09 f10
#> f01 0 3 2 0 4 1 2 1 0 2
#> f02 2 0 2 2 1 1 1 2 4 0
#> f03 1 1 0 2 1 1 2 1 1 2
#> f04 1 0 3 0 2 2 2 1 2 0
#> f05 4 2 1 1 0 1 0 2 1 3
#> f06 3 1 4 3 1 0 3 3 2 0
#> f07 3 1 0 1 2 2 0 1 1 1
#> f08 1 0 0 4 0 0 1 0 2 2
#> f09 1 1 2 2 2 1 1 0 0 1
#> f10 2 1 1 3 4 1 2 0 2 0