initialize-methods {simecol} | R Documentation |
Methods for Function ‘initialize’ in Package ‘simecol’
Description
This function is used to initialize objects derived from the
simObj
superclass, it is by default automatically called during
object creation and by sim
.
Usage
## S4 method for signature 'simObj'
initialize(.Object, ...)
Arguments
.Object |
|
... |
provided for compatibility with the default method of
|
Methods
- .Object = "ANY"
Generic function: see
new
.- .Object = "simObj"
-
The
initialize
function is normally called implicitly bynew
to create new objects. It may also be called explicitly to return a cloned and re-initialized object.The simecol version of
initialize
provides an additonal mechanism to call a user specified function provided in theinitfun
slot of asimObj
instance that can perform computations during the object creation process. Theinitfunc
must haveobj
as its only argument and must return the modified version of thisobj
, see examples below. As a side effect end to ensure consistency,initialize
clears outputs stored in slotout
from former simulations.
See Also
Examples
## Note: new calls initialize and initialize calls initfunc(obj)
lv_efr <- new("odeModel",
main = function (time, init, parms, ...) {
x <- init
p <- parms
S <- approxTime1(inputs, time, rule=2)["s.in"]
dx1 <- S * p["k1"] * x[1] - p["k2"] * x[1] * x[2]
dx2 <- - p["k3"] * x[2] + p["k2"] * x[1] * x[2]
list(c(dx1, dx2))
},
parms = c(k1=0.2, k2=0.2, k3=0.2),
times = c(from=0, to=100, by=0.5),
init = c(prey=0.5, predator=1),
solver = "lsoda",
initfunc = function(obj) {
tt <- fromtoby(times(obj))
inputs(obj) <- as.matrix(data.frame(
time = tt,
s.in = pmax(rnorm(tt, mean=1, sd=0.5), 0)
))
obj
}
)
plot(sim(lv_efr)) # initialize called automatically
plot(sim(lv_efr)) # automatic initialization, different figure
lv_efr<- initialize(lv_efr) # re-initialize manually
plot(sim(lv_efr, initialize = FALSE)) # simulation with that configuration