R: Select and modify a idata set for simulation

idata_set {mrgsolve} | R Documentation

## Select and modify a idata set for simulation

### Description

The individual data set (`idata_set`) is a data frame with one row for each individual in a population, specifying parameters and other individual-level data.

### Usage

    idata_set(x, data, ...)

    ## S4 method for signature 'mrgmod,data.frame'
    idata_set(
      x,
      data,
      .subset = TRUE,
      .select = TRUE,
      object = NULL,
      need = NULL,
      ...
    )

    ## S4 method for signature 'mrgmod,ANY'
    idata_set(x, data, ...)

    ## S4 method for signature 'mrgmod,missing'
    idata_set(x, object, ...)

### Arguments

`x` | model object
`data` | a data set that can be coerced to data.frame
`...` | 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

The `idata_set` is a data.frame that specifies individual-level data for the problem. An `ID` column is required and there can be no more than one row in the data frame for each individual.

In most cases, the columns in the `idata_set` have the same names as parameters in the `param` list. When this is the case, the parameter set is updated as the simulation proceeds once at the start of each individual. The 'idata_set' can also be used to set initial conditions for each individual: for a compartment called `CMT`, make a column in `idata_set` called `CMT_0` and make the value the desired initial value for that compartment. Note that this initial condition will be over-ridden if you also set the `CMT_0` in `$MAIN`.

The most common application of `idata_set` is to specify a population or batch of simulations to do. We commonly use `idata_set` with an event object (see `ev`). In that case, the event gets applied to each individual in the `idata_set`.

It is also possible to provide both a `data_set` and a `idata_set`. In this case, the `idata_set` is used as a parameter lookup for `IDs` found in the `data_set`. Remember in this case, it is the `data_set` (not the `idata_set`) that determines the number of individuals in the simulation.

An error will be generated if any parameter columns in the input idata set contain `NA`.

### See Also

`data_set`, `ev`

### Examples

    mod <- mrgsolve::house()

    data(exidata)

    exidata

    mod %>%
      idata_set(exidata, ID <= 2) %>%
      ev(amt = 100) %>%
      mrgsim() %>%
      plot()

    mod %>%
      idata_set(exidata) %>%
      ev(amt = 100) %>%
      mrgsim()

    mod %>% ev(amt = 100) %>% mrgsim(idata=exidata)

[Package mrgsolve version 1.0.4 Index]