A collection of multiple ParamSet objects.
The collection is basically a light-weight wrapper / container around references to multiple sets.
In order to ensure unique param names, every param in the collection is referred to with
"<set_id>.<param_id>". Parameters from ParamSets with empty (i.e. ""
) $set_id
are referenced
directly. Multiple ParamSets with $set_id
""
can be combined, but their parameter names
must be unique.
Operation subset
is currently not allowed.
Operation add
currently only works when adding complete sets not single params.
When you either ask for 'values' or set them, the operation is delegated to the individual,
contained param set references. The collection itself does not maintain a values
state.
This also implies that if you directly change values
in one of the referenced sets,
this change is reflected in the collection.
Dependencies: It is possible to currently handle dependencies
regarding parameters inside of the same set - in this case simply add the dependency to the set, best before adding the set to the collection
across sets, where a param from one set depends on the state
of a param from another set - in this case add call add_dep
on the collection.
If you call deps
on the collection, you are returned a complete table of dependencies, from sets and across sets.
paradox::ParamSet
-> ParamSetCollection
params
(named list()
)
List of Param, named with their respective ID.
deps
(data.table::data.table()
)
Table has cols id
(character(1)
) and on
(character(1)
) and cond
(Condition).
Lists all (direct) dependency parents of a param, through parameter IDs.
Internally created by a call to add_dep
.
Settable, if you want to remove dependencies or perform other changes.
values
(named list()
)
Currently set / fixed parameter values.
Settable, and feasibility of values will be checked when you set them.
You do not have to set values for all parameters, but only for a subset.
When you set values, all previously set values will be unset / removed.
new()
Creates a new instance of this R6 class.
ParamSetCollection$new(sets)
sets
(list()
of ParamSet)
Parameter objects are cloned.
add()
Adds a set to this collection.
ParamSetCollection$add(p)
p
(ParamSet).
remove_sets()
Removes sets of given ids from collection.
ParamSetCollection$remove_sets(ids)
ids
(character()
).
subset()
Only included for consistency. Not allowed to perform on ParamSetCollections.
ParamSetCollection$subset(ids)
ids
(character()
).
clone()
The objects of this class are cloneable with this method.
ParamSetCollection$clone(deep = FALSE)
deep
Whether to make a deep clone.