Skip to contents

Use the function when you would usually use mrgsim_d, but you need a quicker turnaround time. The timing differences might be difficult to detect for a single simulation run but could become appreciable with repeated simulation. See details for important differences in how mrgsim_q is invoked compared to mrgsim and mrgsim_d. This function should always be used for benchmarking simulation time with mrgsolve.


  recsort = 1,
  stime = numeric(0),
  output = "mrgsims",
  skip_init_calc = FALSE,
  simcall = 0,
  etasrc = "omega"



a model object.


a simulation data set.


record sorting flag.


a numeric vector of observation times; these observation times will only be added to the output if there are no observation records in data.


output data type; if mrgsims, then the default output object is returned; if "df" then a data frame is returned.


don't use $MAIN to calculate initial conditions.


not used; only the default value of 0 is allowed.


source for ETA() values in the model; values can include: "omega", `"data"`, `"data.all"`, `"idata"`, or `"idata.all"`; see 'Details' in [mrgsim()].


By default, an object of class `mrgsims`. Use `output = "df"` to return a data frame.


This function does not support the piped simulation workflow. All arguments must be passed into the function except for x.

A data set is required for this simulation workflow. The data set can have only dosing records or doses with observations. When the data set only includes doses, a single numeric vector of observation times should be passed in.

This simulation workflow does not support Req (request) functionality. All compartments and captured variables will always be returned in the simulation output.

This simulation workflow does not support carry-out functionality.

This simulation workflow does not accept arguments to be passed to update. This must be done by a separate call to update.

This simulation workflow does not support use of event objects. If an event object is needed, it should be converted to a data set prior to the simulation run (see as_data_set or

This simulation workflow does not support idata sets or any feature enabled by idata set use. Individual level parameters should be joined onto the data set prior to simulation. Otherwise mrgsim_i or mrgsim_ei should be used.

By default, a mrgsims object is returned (as with mrgsim). Use the output="df" argument to request a plain data.frame of simulated data on return.


mod <- mrgsolve::house()

data <- expand.ev(amt = c(100, 300, 1000))

out <- mrgsim_q(mod, data)

#> Model:  housemodel 
#> Dim:    1446 x 7 
#> Time:   0 to 120 
#> ID:     3 
#>     ID time    GUT  CENT  RESP    DV    CP
#> 1:   1 0.00   0.00  0.00 50.00 0.000 0.000
#> 2:   1 0.00 100.00  0.00 50.00 0.000 0.000
#> 3:   1 0.25  74.08 25.75 48.68 1.287 1.287
#> 4:   1 0.50  54.88 44.50 46.18 2.225 2.225
#> 5:   1 0.75  40.66 58.08 43.61 2.904 2.904
#> 6:   1 1.00  30.12 67.83 41.38 3.391 3.391
#> 7:   1 1.25  22.31 74.74 39.58 3.737 3.737
#> 8:   1 1.50  16.53 79.56 38.18 3.978 3.978