expand.hesim_data {hesim} | R Documentation |
Expand hesim_data
Description
Create a data table in long format from all combinations of specified tables from an object of class hesim_data and optionally time intervals. See "Details" for an explanation of how the expansion is done.
Usage
## S3 method for class 'hesim_data'
expand(object, by = c("strategies", "patients"), times = NULL)
Arguments
object |
An object of class |
by |
A character vector of the names of the data tables in |
times |
Either a numeric vector of distinct times denoting the start of time intervals or a time_intervals object. |
Details
This function is similar to expand.grid()
, but works for data frames or data tables.
Specifically, it creates a data.table
from all combinations of the supplied tables in object
and optionally the start of times intervals in times
.
The supplied tables are determined using the by
argument. The resulting dataset is sorted by
prioritizing ID variables as follows: (i) strategy_id
, (ii) patient_id
,
(iii) the health-related ID variable (either state_id
or transition_id
, and
(iv) the time intervals from times
.
Value
An object of class expanded_hesim_data
, which is a data.table
with an "id_vars"
attribute containing the names of the ID variables in the data table and, if times
is
not NULL
, a time_intervals
object derived from times
.
Examples
strategies <- data.frame(strategy_id = c(1, 2))
patients <- data.frame(patient_id = seq(1, 3), age = c(65, 50, 75),
gender = c("Female", "Female", "Male"))
states <- data.frame(state_id = seq(1, 3),
state_var = c(2, 1, 9))
hesim_dat <- hesim_data(strategies = strategies,
patients = patients,
states = states)
expand(hesim_dat, by = c("strategies", "patients"))
expand(hesim_dat, by = c("strategies", "patients"),
times = c(0, 2, 10))