View source: R/module-define.R
defineParameter | R Documentation |
Used to specify a parameter's name, value, and set a default. The min
and
max
arguments are ignored by simInit
or spades
; they
are for human use only. To ensure that a user cannot set parameters outside of
a range of values, the module developer should use assertions in their module
code.
defineParameter(name, class, default, min, max, desc, ...)
name |
Character string giving the parameter name. |
class |
Character string giving the parameter class. |
default |
The default value to use when none is specified by the user. Non-standard evaluation is used for the expression. |
min |
With |
max |
With |
desc |
Text string providing a brief description of the parameter.
If there are extra spaces or carriage returns, these will be stripped,
allowing for multi-line character strings without using |
... |
A convenience that allows writing a long |
a data.frame
Be sure to use the correct NA type: logical (NA
), integer (NA_integer_
),
real (NA_real_
), complex (NA_complex_
), or character (NA_character_
).
See NA()
.
Alex Chubaty and Eliot McIntire
P()
, params()
for accessing these parameters in a module.
parameters = rbind(
defineParameter("lambda", "numeric", 1.23, desc = "intrinsic rate of increase"),
defineParameter("P", "numeric", 0.2, 0, 1, "probability of attack"),
# multi-line desc without quotes on each line -- spaces and carriage returns are stripped
defineParameter("rate", "numeric", 0.2, 0, 1,
"rate of arrival. This is in individuals
per day. This can be modified
by the user"),
# multi-line desc with quotes on each line
defineParameter("times", "numeric", 0.2, 0, 1,
desc = "The times during the year ",
"that events will occur ",
"with possibility of random arrival times")
)
# Create a new module, then access parameters using `P`
tmpdir <- file.path(tempdir(), "test")
checkPath(tmpdir, create = TRUE)
# creates a new, "empty" module -- it has defaults for everything that is required
newModule("testModule", tmpdir, open = FALSE)
# Look at new module code -- see defineParameter
if (interactive()) file.edit(file.path(tmpdir, "testModule", "testModule.R"))
# initialize the simList
if (requireNamespace("ggplot2", quietly = TRUE)) {
# Some things not necessary in this example, if not interactive (like plotting)
opts <- if (interactive()) list() else
options(spades.plot = NA, spades.useRequire = FALSE,
spades.moduleCodeChecks = FALSE)
mySim <- simInit(modules = "testModule",
paths = list(modulePath = tmpdir))
# Access one of the parameters -- because this line is not inside a module
# function, we must specify the module name. If used within a module,
# we can omit the module name
P(mySim, module = "testModule") # gets all params in a module
P(mySim, ".useCache", "testModule") # just one param
options(opts)
}
unlink(tmpdir, recursive = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.