Registry for Criterion Methods
A registry to manage methods to calculate a criterion value given data and a permutation.
list_criterion_methods(kind) show_criterion_methods(kind) get_criterion_method(kind, name) set_criterion_method(kind, name, fun, description = NULL, merit = NA, ...)
kind |
the data type the method works on. For example, |
name |
a short name for the method used to refer to the method in
the function |
fun |
a function containing the method's code. |
description |
a description of the method. For example, a long name. |
merit |
a boolean indicating if the criterion measure is a merit
( |
... |
further information that is stored for the method in the registry. |
All methods below are convenience methods for the registry named
registry_criterion.
list_criterion_method() lists all available methods for a given
data type (kind). The result is a vector of character strings
with the short names of the methods.
show_criterion_method() shows all available methods for a given
data type (kind) including a description.
get_criterion_method() returns information (including the
implementing function) about a given method in form of an object of
class "criterion_method".
With set_criterion_method() new criterion methods can be added by the
user. The implementing function (fun) needs to have the
formal arguments x, order, ..., where x is the data object,
order is an object of class permutation_vector and ... can
contain additional information for the method passed on from criterion().
The implementation has to return the criterion value as a scalar.
Michael Hahsler
## the registry
registry_criterion
## use the convenience functions
list_criterion_methods("dist")
show_criterion_methods("dist")
get_criterion_method("dist", "AR_d")
## define a new method
## a function that return sum of the diagonal elements
criterion_method_matrix_foo <- function(x, order, ...) {
if(!is.null(order)) x <- permute(x,order)
sum(diag(x))
}
## set new method
set_criterion_method("matrix", "foo", criterion_method_matrix_foo,
"foo: a useless demo criterion", FALSE)
list_criterion_methods("matrix")
##use all criterion methods (including the new one)
criterion(matrix(1:9, ncol=3))Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.