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, ...)

Arguments

x

model object

data

data set

...

passed along

.subset

an unquoted expression passed to dplyr::filter; retain only certain rows in the data set

.select

passed to dplyr::select; retain only certain columns in the data set; this should be the result of a call to dplyr::vars()

object

character name of an object existing in $ENV to use for the data set

need

passed to inventory

Details

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.

Examples


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