simulate
Method for formula
objects that dispatches based on the Left-Hand SideThis method evaluates the left-hand side (LHS) of the given formula and dispatches it to an appropriate method based on the result by setting an nonce class name on the formula.
# S3 method for formula
simulate(object, nsim = 1 , seed = NULL, ...,
basis, newdata, data)
a one- or two-sided formula
.
number of realisations to simulate and the random
seed to use; see simulate
additional arguments to methods
if given, overrides the LHS of the formula for the purposes of dispatching
if passed, the object
's LHS is evaluated in
this environment; at most one of the two may be passed.
The dispatching works as follows:
If basis
is not passed, and the formula has an LHS the
expression on the LHS of the formula in the object
is
evaluated in the environment newdata
or data
(if given), in
any case enclosed by the environment of object
. Otherwise,
basis
is used.
The result is set as an attribute ".Basis"
on object
. If
there is no basis
or LHS, it is not set.
The class vector of object
has c("formula_lhs_CLASS",
"formula_lhs")
prepended to it, where CLASS is the class
of the LHS value or basis
. If LHS or basis
has multiple
classes, they are all prepended; if there is no LHS or basis
,
c("formula_lhs_", "formula_lhs")
is.
simulate
generic is evaluated on the new object
, with all
arguments passed on, excluding basis
; if newdata
or data
are missing, they too are not passed on. The evaluation takes
place in the parent's environment.
A "method" to receive a formula whose LHS evaluates to CLASS
can therefore be implemented by a function
simulate.formula_lhs_CLASS()
. This function can expect a
formula
object, with additional attribute .Basis
giving the
evaluated LHS (so that it does not need to be evaluated again).