This is a general function that enumerates all conditions created from
data in x
and calls the callback function f
on each.
Usage
dig(
x,
f,
condition = everything(),
focus = NULL,
disjoint = NULL,
min_length = 0,
max_length = Inf,
min_support = 0,
min_focus_support = min_support,
filter_empty_foci = FALSE,
t_norm = "goguen",
threads = 1,
...
)
Arguments
- x
a matrix or data frame. The matrix must be numeric (double) or logical. If
x
is a data frame then each column must be either numeric (double) or logical.- f
the callback function executed for each generated condition. This function may have some of the following arguments. Based on the present arguments, the algorithm would provide information about the generated condition: -
condition
- a named integer vector of column indices that represent the predicates of the condition. Names of the vector correspond to column names; -support
- a numeric scalar value of the current condition's support; -indices
- a logical vector indicating the rows satisfying the condition; -weights
- (similar to indices) weights of rows to which they satisfy the current condition; -pp
- a value of a contingency table,condition & focus
.pp
is a named numeric vector where each value is a support of conjunction of the condition with a foci column (see thefocus
argument to specify, which columns). Names of the vector are foci column names. -pn
- a value of a contingency table,condition & neg focus
.pn
is a named numeric vector where each value is a support of conjunction of the condition with a negated foci column (see thefocus
argument to specify, which columns are foci) - names of the vector are foci column names. -np
- a value of a contingency table,neg condition & focus
.np
is a named numeric vector where each value is a support of conjunction of the negated condition with a foci column (see thefocus
argument to specify, which columns are foci) - names of the vector are foci column names. -nn
- a value of a contingency table,neg condition & neg focus
.nn
is a named numeric vector where each value is a support of conjunction of the negated condition with a negated foci column (see thefocus
argument to specify, which columns are foci) - names of the vector are foci column names. -foci_supports
- (deprecated, usepp
instead) a named numeric vector of supports of foci columns (seefocus
argument to specify, which columns are foci) - names of the vector are foci column names.- condition
a tidyselect expression (see tidyselect syntax) specifying the columns to use as condition predicates
- focus
a tidyselect expression (see tidyselect syntax) specifying the columns to use as focus predicates
- disjoint
an atomic vector of size equal to the number of columns of
x
that specifies the groups of predicates: if some elements of thedisjoint
vector are equal, then the corresponding columns ofx
will NOT be present together in a single condition.- min_length
the minimum size (the minimum number of predicates) of the condition to be generated (must be greater or equal to 0). If 0, the empty condition is generated in the first place.
- max_length
The maximum size (the maximum number of predicates) of the condition to be generated. If equal to Inf, the maximum length of conditions is limited only by the number of available predicates.
- min_support
the minimum support of a condition to trigger the callback function for it. The support of the condition is the relative frequency of the condition in the dataset
x
. For logical data, it equals to the relative frequency of rows such that all condition predicates are TRUE on it. For numerical (double) input, the support is computed as the mean (over all rows) of multiplications of predicate values.- min_focus_support
the minimum support of a focus, for the focus to be passed to the callback function. The support of the focus is the relative frequency of rows such that all condition predicates AND the focus are TRUE on it. For numerical (double) input, the support is computed as the mean (over all rows) of multiplications of predicate values.
- filter_empty_foci
a logical scalar indicating whether to skip conditions, for which no focus remains available after filtering by
min_focus_support
. IfTRUE
, the condition is passed to the callback function only if at least one focus remains after filtering. IfFALSE
, the condition is passed to the callback function regardless of the number of remaining foci.- t_norm
a t-norm used to compute conjunction of weights. It must be one of
"goedel"
(minimum t-norm),"goguen"
(product t-norm), or"lukas"
(Lukasiewicz t-norm).- threads
the number of threads to use for parallel computation.
- ...
Further arguments, currently unused.