The input data set (data_set
) is a data frame that specifies
observations, model events, and / or parameter values for a population
of individuals.
data_set(x, data, ...)
# S4 method for mrgmod,data.frame
data_set(
x,
data,
.subset = TRUE,
.select = TRUE,
object = NULL,
need = NULL,
...
)
# S4 method for mrgmod,ANY
data_set(x, data, ...)
# S4 method for mrgmod,ev
data_set(x, data, ...)
# S4 method for mrgmod,missing
data_set(x, object, ...)
model object
data set
passed along
an unquoted expression passed to
dplyr::filter
; retain only certain rows in the data set
passed to dplyr::select
; retain only certain
columns in the data set; this should be the result of a call to
dplyr::vars()
character name of an object existing in $ENV
to use for the data set
passed to inventory
Input data sets are R
data frames that can include columns
with any valid name, however columns with selected names are
treated specially by mrgsolve
and incorporated into the
simulation.
ID
specifies the subject ID and is required for every
input data set.
When columns have the same name as parameters ($PARAM
in
the model specification file), the values in those columns will
be used to update the corresponding parameter as the simulation
progresses.
Input data set may include the following columns related to
PK dosing events: time
, cmt
, amt
, rate
,
ii
, addl
, ss
. Along with ID
, time
is a required column in the input data set unless $PRED
is in
use. Upper case PK dosing column names including
TIME
, CMT
, AMT
, RATE
, II
,
ADDL
, SS
are also recognized. However, an
error will be generated if a mix of upper case and lower
case columns in this family are found.
time
is the observation or event time, cmt
is the compartment number (see init
), amt
is the dosing amount, rate
is the infusion rate,
ii
is the dosing interval, addl
specifies
additional doses to administer, and ss
is a flag
for steady state dosing. These column names operate
similarly to other non-linear mixed effects modeling
software.
An error will be generated when mrgsolve detects that the data set
is not sorted by time
within an individual.
Only numeric data can be brought in to the problem.
Any non-numeric data columns will be dropped with warning.
See numerics_only
, which is used
to prepare the data set.
An error will be generated if any parameter columns in the
input data set contain NA
. Likewise, and error will
be generated if missing values are found in the following
columns: ID
, time
/TIME
, rate
/RATE
.
See exdatasets
for different example data sets.
mod <- mrgsolve::house()
data <- expand.ev(ID=seq(3), amt=c(10, 20))
mod %>% data_set(data, ID > 1) %>% mrgsim()
#> Model: housemodel
#> Dim: 2410 x 7
#> Time: 0 to 120
#> ID: 5
#> ID time GUT CENT RESP DV CP
#> 1: 2 0.00 0.000 0.000 50.00 0.0000 0.0000
#> 2: 2 0.00 10.000 0.000 50.00 0.0000 0.0000
#> 3: 2 0.25 7.408 2.575 49.86 0.1287 0.1287
#> 4: 2 0.50 5.488 4.450 49.56 0.2225 0.2225
#> 5: 2 0.75 4.066 5.808 49.23 0.2904 0.2904
#> 6: 2 1.00 3.012 6.783 48.93 0.3391 0.3391
#> 7: 2 1.25 2.231 7.474 48.67 0.3737 0.3737
#> 8: 2 1.50 1.653 7.956 48.46 0.3978 0.3978
data(extran1)
head(extran1)
#> ID amt cmt time addl ii rate evid
#> 1 1 1000 1 0 3 24 0 1
#> 2 2 1000 2 0 0 0 20 1
#> 3 3 1000 1 0 0 0 0 1
#> 4 3 500 1 24 0 0 0 1
#> 5 3 500 1 48 0 0 0 1
#> 6 3 1000 1 72 0 0 0 1
mod %>% data_set(extran1) %>% mrgsim()
#> Model: housemodel
#> Dim: 2414 x 7
#> Time: 0 to 120
#> ID: 5
#> ID time GUT CENT RESP DV CP
#> 1: 1 0.00 0.0 0.0 50.00 0.00 0.00
#> 2: 1 0.00 1000.0 0.0 50.00 0.00 0.00
#> 3: 1 0.25 740.8 257.5 42.29 12.87 12.87
#> 4: 1 0.50 548.8 445.0 32.69 22.25 22.25
#> 5: 1 0.75 406.6 580.8 25.29 29.04 29.04
#> 6: 1 1.00 301.2 678.3 20.05 33.91 33.91
#> 7: 1 1.25 223.1 747.4 16.45 37.37 37.37
#> 8: 1 1.50 165.3 795.6 14.01 39.78 39.78
mod %>% mrgsim(data = extran1)
#> Model: housemodel
#> Dim: 2414 x 7
#> Time: 0 to 120
#> ID: 5
#> ID time GUT CENT RESP DV CP
#> 1: 1 0.00 0.0 0.0 50.00 0.00 0.00
#> 2: 1 0.00 1000.0 0.0 50.00 0.00 0.00
#> 3: 1 0.25 740.8 257.5 42.29 12.87 12.87
#> 4: 1 0.50 548.8 445.0 32.69 22.25 22.25
#> 5: 1 0.75 406.6 580.8 25.29 29.04 29.04
#> 6: 1 1.00 301.2 678.3 20.05 33.91 33.91
#> 7: 1 1.25 223.1 747.4 16.45 37.37 37.37
#> 8: 1 1.50 165.3 795.6 14.01 39.78 39.78