trajectory {SimInf} | R Documentation

## Extract data from a simulated trajectory

### Description

Extract the number of individuals in each compartment in every node after generating a single stochastic trajectory with `run`.

### Usage

    trajectory(model, compartments = NULL, node = NULL, as.is = FALSE)

### Arguments

`model` | the `model` to extract the result from.

`compartments`

specify the names of the compartments to extract data from. The compartments can be specified as a character vector e.g. `compartments = c('S', 'I', 'R')`, or as a formula e.g. `compartments = ~S+I+R` (see ‘Examples’). Default (`compartments=NULL`) is to extract the number of individuals in each compartment i.e. the data from all discrete state compartments in the model. In models that also have continuous state variables e.g. the `SISe` model, use `~.` instead of `NULL` to also include these.

`node` | indices specifying the subset of nodes to include when extracting data. Default (`node = NULL`) is to extract data from all nodes.
`as.is` | the default (`as.is = FALSE`) is to generate a `data.frame` with one row per node and time-step with the number of individuals in each compartment. Using `as.is = TRUE` returns the result as a matrix, which is the internal format (see ‘Details’).

### Value

A `data.frame` if `as.is = FALSE`, else a matrix.

### Internal format of the discrete state variables

Description of the layout of the internal matrix (`U`) that is returned if `as.is = TRUE`. `U[, j]` contains the number of individuals in each compartment at `tspan[j]`. `U[1:Nc, j]` contains the number of individuals in node 1 at `tspan[j]`. `U[(Nc + 1):(2 * Nc), j]` contains the number of individuals in node 2 at `tspan[j]` etc, where `Nc` is the number of compartments in the model. The dimension of the matrix is N_n N_c \times `length(tspan)` where N_n is the number of nodes.

### Internal format of the continuous state variables

Description of the layout of the matrix that is returned if `as.is = TRUE`. The result matrix for the real-valued continuous state. `V[, j]` contains the real-valued state of the system at `tspan[j]`. The dimension of the matrix is N_n `dim(ldata)[1]` \times `length(tspan)`.

### Examples

    ## Create an 'SIR' model with 6 nodes and initialize
    ## it to run over 10 days.
    u0 <- data.frame(S = 100:105, I = 1:6, R = rep(0, 6))
    model <- SIR(u0 = u0, tspan = 1:10, beta = 0.16, gamma = 0.077)

    ## Run the model to generate a single stochastic trajectory.
    result <- run(model, threads = 1)

    ## Extract the number of individuals in each compartment at the
    ## time-points in 'tspan'.
    trajectory(result)

    ## Extract the number of recovered individuals in the first node
    ## at the time-points in 'tspan'.
    trajectory(result, compartments = "R", node = 1)

    ## Extract the number of recovered individuals in the first and
    ## third node at the time-points in 'tspan'.
    trajectory(result, compartments = "R", node = c(1, 3))

    ## Create an 'SISe' model with 6 nodes and initialize
    ## it to run over 10 days.
    u0 <- data.frame(S = 100:105, I = 1:6)
    model <- SISe(u0 = u0, tspan = 1:10, phi = rep(0, 6),
        upsilon = 0.02, gamma = 0.1, alpha = 1, epsilon = 1.1e-5,
        beta_t1 = 0.15, beta_t2 = 0.15, beta_t3 = 0.15, beta_t4 = 0.15,
        end_t1 = 91, end_t2 = 182, end_t3 = 273, end_t4 = 365)

    ## Run the model
    result <- run(model, threads = 1)

    ## Extract the continuous state variable 'phi' which represents
    ## the environmental infectious pressure.
    trajectory(result, "phi")

[Package SimInf version 6.3.0 Index]