-
Notifications
You must be signed in to change notification settings - Fork 0
/
model.R
25 lines (22 loc) · 882 Bytes
/
model.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
library(SimInf)
## Create an 'SIR' model with 1600 nodes and initialize
## it to run over 4*365 days. Add one infected individual
## to the first node.
u0 <- u0_SIR()
u0$I[1] <- 1
tspan <- seq(from = 1, to = 4*365, by = 1)
model <- SIR(u0 = u0,
tspan = tspan,
events = events_SIR(),
beta = 0.001,
gamma = 0.077)
## Run the model to generate a single stochastic trajectory.
result <- run(model)
## Determine nodes with one or more infected individuals in the
## trajectory. Extract the 'I' compartment and check for any
## infected individuals in each node.
infected <- colSums(trajectory(result, ~ I, format = "matrix")) > 0
## Display infected nodes in 'blue' and non-infected nodes in 'yellow'.
data("nodes", package = "SimInf")
col <- ifelse(infected, "red", "grey")
plot(y ~ x, nodes, col = col, pch = 20, cex = 2)