These functions are used to construct new parameter objects. Generally, these functions are called from higher level parameter generating functions like mtry().

new_quant_param(
type = c("double", "integer"),
range,
inclusive,
default = unknown(),
trans = NULL,
values = NULL,
label = NULL,
finalize = NULL
)

new_qual_param(
type = c("character", "logical"),
values,
default = unknown(),
label = NULL,
finalize = NULL
)

Arguments

type A single character value. For quantitative parameters, valid choices are "double" and "integer" while for qualitative factors they are "character" and "logical". A two-element vector with the smallest or largest possible values, respectively. If these cannot be set when the parameter is defined, the unknown() function can be used. If a transformation is specified, these values should be in the transformed units. A two-element logical vector for whether the range values should be inclusive or exclusive. A single value with the same class as type for the default parameter value. unknown() can also be used here. A trans object from the scales package, such as scales::log10_trans() or scales::reciprocal_trans(). Create custom transforms with scales::trans_new(). A vector of possible values that is required when type is "character" or "logical" but optional otherwise. For quantitative parameters, these override the range when generating sequences if set. An optional named character string that can be used for printing and plotting. The name should match the object name (e.g. "mtry", "neighbors", etc.) A function that can be used to set the data-specific values of a parameter (such as the range).

Value

An object of class "param" with the primary class being either "quant_param" or "qual_param". The range element of the object is always converted to a list with elements "lower" and "upper".

Examples

# Create a function that generates a quantitative parameter
# corresponding to the number of subgroups.
num_subgroups <- function(range = c(1L, 20L), trans = NULL) {
new_quant_param(
type = "integer",
range = range,
inclusive = c(TRUE, TRUE),
trans = trans,
label = c(num_subgroups = "# Subgroups"),
finalize = NULL
)
}

num_subgroups()
#> # Subgroups (quantitative)
#> Range: [1, 20]
num_subgroups(range = c(3L, 5L))
#> # Subgroups (quantitative)
#> Range: [3, 5]
# Custom parameters instantly have access
# to sequence generating functions
value_seq(num_subgroups(), 5)
#> [1]  1  5 10 15 20