params and P access the parameter slot in the simList. params has a replace method, so can be used to update a parameter value.

P is a concise way to access parameters within a module. It works more like a namespaced function in the sense that the module from which it is called is the default place it will look for the parameter. To access a parameter from within a module, you can use P(sim)$paramName instead of params(sim)$moduleName$paramName

params(sim)

# S4 method for .simList
params(sim)

params(sim) <- value

# S4 method for .simList
params(sim) <- value

P(sim, module, param)

parameters(sim, asDF = FALSE)

# S4 method for .simList
parameters(sim, asDF = FALSE)

Arguments

sim

A simList object from which to extract element(s) or in which to replace element(s).

value

The object to be stored at the slot.

module

Optional character string indicating which module params should come from.

param

Optional character string indicating which parameter to choose.

asDF

Logical. For parameters, if TRUE, this will produce a single data.frame of all model parameters. If FALSE, then it will return a data.frame with 1 row for each parameter within nested lists, with the same structure as params.

Value

Returns or sets the value of the slot from the simList object.

Note

The differences between P, params and being explicit with passing arguments are mostly a question of speed and code compactness. The computationally fastest way to get a parameter is to specify moduleName and parameter name, as in: P(sim, "moduleName", "paramName") (replacing moduleName and paramName with your specific module and parameter names), but it is more verbose than P(sim)$paramName. Note: the important part for speed (e.g., 2-4x faster) is specifying the moduleName. Specifying the parameter name is <5

See also

SpaDES.core-package, specifically the section 1.2.1 on Simulation parameters.

Other functions to access elements of a simList object: .addDepends, doEvent.checkpoint, envir, events, globals, inputs, ls.simList, ls.str.simList, modules, objs, packages, paths, progressInterval, times

Examples

modules <- list("randomLandscapes") paths <- list(modulePath = system.file("sampleModules", package = "SpaDES.core")) mySim <- simInit(modules = modules, paths = paths, params = list(.globals = list(stackName = "landscape")))
#> Loading required package: RColorBrewer
#> defineParameter: '.useCache' is not of specified type 'logical'.
#> randomLandscapes: module code appears clean
parameters(mySim)
#> $randomLandscapes #> $randomLandscapes$inRAM #> paramClass default min max paramDesc #> 1 logical FALSE TRUE FALSE should the raster be stored in memory? #> #> $randomLandscapes$nx #> paramClass default min max paramDesc #> 2 numeric 100 10 500 size of map (number of pixels) in the x dimension #> #> $randomLandscapes$ny #> paramClass default min max paramDesc #> 3 numeric 100 10 500 size of map (number of pixels) in the y dimension #> #> $randomLandscapes$stackName #> paramClass default min max paramDesc #> 4 character landscape NA NA name of the RasterStack #> #> $randomLandscapes$.plotInitialTime #> paramClass default min max paramDesc #> 5 numeric 0 0 NA time to schedule first plot event #> #> $randomLandscapes$.plotInterval #> paramClass default min max paramDesc #> 6 numeric NA NA NA time interval between plot events #> #> $randomLandscapes$.saveInitialTime #> paramClass default min max paramDesc #> 7 numeric NA NA NA time to schedule first save event #> #> $randomLandscapes$.saveInterval #> paramClass default min max paramDesc #> 8 numeric NA NA NA time interval between save events #> #> $randomLandscapes$.useCache #> paramClass default min max #> 9 logical FALSE init, plot NA #> paramDesc #> 9 should the module result be cached for future use #> #>