Functions that access slots of a *_ipm
(including
proto_ipm
). default
methods correspond to *_ipm
objects.
domains(object)
# S3 method for class 'proto_ipm'
domains(object)
# Default S3 method
domains(object)
vital_rate_exprs(object)
# S3 method for class 'proto_ipm'
vital_rate_exprs(object)
# Default S3 method
vital_rate_exprs(object)
vital_rate_funs(ipm)
# S3 method for class 'ipmr_ipm'
vital_rate_funs(ipm)
vital_rate_exprs(object, kernel, vital_rate) <- value
# S3 method for class 'proto_ipm'
vital_rate_exprs(object, kernel, vital_rate) <- value
new_fun_form(form)
kernel_formulae(object)
# S3 method for class 'proto_ipm'
kernel_formulae(object)
# Default S3 method
kernel_formulae(object)
kernel_formulae(object, kernel) <- value
# S3 method for class 'proto_ipm'
kernel_formulae(object, kernel) <- value
parameters(object)
# S3 method for class 'proto_ipm'
parameters(object)
# Default S3 method
parameters(object)
parameters(object, ...) <- value
# S3 method for class 'proto_ipm'
parameters(object, ...) <- value
int_mesh(ipm, full_mesh = TRUE)
# S3 method for class 'ipmr_ipm'
int_mesh(ipm, full_mesh = TRUE)
pop_state(object)
# S3 method for class 'proto_ipm'
pop_state(object)
# Default S3 method
pop_state(object)
A proto_ipm
or object created by make_ipm()
.
An object created by make_ipm()
. This argument only applies to
int_mesh()
and vital_rate_funs()
(because these quantities don't
exist until make_ipm()
is called).
The name of the kernel to insert the new vital rate expression into.
The name of the vital rate to replace. If the vital rate
doesn't already exist in the object
, a new one with this name will be
created.
For parameters<-
, a named list of new parameters. The new list does not need
to contain all of the parameters, just the ones to update/append. For
vital_rate_exprs<-
and kernel_formulae<-
, a new functional form.
The new functional form must be wrapped in a call to new_fun_form
.
An expression representing the new vital rate or kernel formula to insert.
Additional arguments used in RPadrino
methods.
Return the full integration mesh? Default is TRUE
.
FALSE
returns only unique values for each state variable.
Depending on the class of object
, a list
with types numeric or character.
The *.default
method corresponds to output from make_ipm()
,
and the *.proto_ipm
methods correspond to outputs from define_*
.
When using kernel_formulae<-
and vital_rates_exprs<-
, the right
hand side of the expression must be wrapped in new_fun_form
. See
examples.
Note that when using vital_rate_funs
, unless the vital rate expression
explicitly contains an expression for integration, these functions
are not yet integrated! This is useful for things like sensitivity
and elasticity analysis, but care must be taken to not use these values
incorrectly.
data(gen_di_det_ex)
proto <- gen_di_det_ex$proto_ipm
# Create a new, iterated IPM
new_ipm <- make_ipm(proto, iterate = TRUE,
iterations = 100, return_all_envs = TRUE)
vital_rate_exprs(new_ipm)
#> g: dnorm(ht_2, g_mu, g_sd)
#> g_mu: g_int + g_slope * ht_1
#> s: inv_logit_2(s_int, s_slope, s_slope_2, ht_1)
#> f_r: inv_logit(f_r_int, f_r_slope, ht_1)
#> f_s: exp(f_s_int + f_s_slope * ht_1)
#> f_d: dnorm(ht_2, f_d_mu, f_d_sd)
kernel_formulae(new_ipm)
#> P: s * g * d_ht
#> go_discrete: f_r * f_s * g_i * d_ht
#> stay_discrete: 0
#> leave_discrete: e_p * f_d * d_ht
vital_rate_funs(new_ipm)
#> $P
#> g (not yet discretized): A 200 x 200 kernel with minimum value: 0 and maximum value: 0.0344
#> g_mu (not yet discretized): A 200 x 200 kernel with minimum value: 8.3275 and maximum value: 620.7542
#> s (not yet discretized): A 200 x 200 kernel with minimum value: 0.001 and maximum value: 1
#>
#> $go_discrete
#> f_r (not yet discretized): A 1 x 200 row vector with minimum value: 0 and maximum value: 1
#> f_s (not yet discretized): A 1 x 200 row vector with minimum value: 14.1933 and maximum value: 34141.8242
#>
#> $stay_discrete
#> No vital rates specified
#>
#> $leave_discrete
#> f_d (not yet discretized): A 200 x 1 column vector with minimum value: 0 and maximum value: 0.1948
#>
domains(new_ipm)
#> ht: lower_bound = 1.02, upper_bound = 624, n_meshpoints = 200
parameters(new_ipm)
#> g_int g_slope g_sd s_int s_slope s_slope_2 f_r_int
#> 5.781000 0.988000 20.556990 -0.352000 0.122000 -0.000213 -11.460000
#> f_r_slope f_s_int f_s_slope f_d_mu f_d_sd e_p g_i
#> 0.083500 2.620400 0.012560 5.665500 2.073400 0.150000 0.506700
# Usage is the same for proto_ipm's as *_ipm's
vital_rate_exprs(proto)
#> g: dnorm(ht_2, g_mu, g_sd)
#> g_mu: g_int + g_slope * ht_1
#> s: inv_logit_2(s_int, s_slope, s_slope_2, ht_1)
#> f_r: inv_logit(f_r_int, f_r_slope, ht_1)
#> f_s: exp(f_s_int + f_s_slope * ht_1)
#> f_d: dnorm(ht_2, f_d_mu, f_d_sd)
kernel_formulae(proto)
#> P: s * g * d_ht
#> go_discrete: f_r * f_s * g_i * d_ht
#> stay_discrete: 0
#> leave_discrete: e_p * f_d * d_ht
domains(proto)
#> ht: lower_bound = 1.02, upper_bound = 624, n_meshpoints = 200
parameters(proto)
#> g_int g_slope g_sd s_int s_slope s_slope_2 f_r_int
#> 5.781000 0.988000 20.556990 -0.352000 0.122000 -0.000213 -11.460000
#> f_r_slope f_s_int f_s_slope f_d_mu f_d_sd e_p g_i
#> 0.083500 2.620400 0.012560 5.665500 2.073400 0.150000 0.506700
int_mesh(new_ipm)
#> d_ht - 3.1149
#> ht_1 - Lower bound: 2.57745, Upper bound: 622.44255, # of Meshpoints: 200
#> ht_2 - Lower bound: 2.57745, Upper bound: 622.44255, # of Meshpoints: 200
# Setting new parameters, vital rate expressions, and kernel formulae
# only works on proto_ipm's.
# This replaces the "g_int" parameter and leaves the rest untouched
parameters(proto) <- list(g_int = 1.5)
# This creates a new g_z parameter and leaves the rest of parameters untouched
parameters(proto) <- list(g_z = 2.2)
# setting a new vital rate or kernel expression requires wrapping the
# right-hand side in a call to new_fun_form(). new_fun_form uses expressions
# with the same format as ... in define_kernel()
vital_rate_exprs(proto,
kernel = "P",
vital_rate = "g_mu") <- new_fun_form(g_int + g_z + g_slope * ht_1)
kernel_formulae(proto, kernel = "stay_discrete") <- new_fun_form(g_z * d_ht)