Given a TidySet creates a new set with the elements on the both of them following the logic defined on FUN.
Usage
intersection(object, sets, ...)
# S4 method for class 'TidySet,character'
intersection(
object,
sets,
name = NULL,
FUN = "min",
keep = FALSE,
keep_relations = keep,
keep_elements = keep,
keep_sets = keep,
...
)
Arguments
- object
A TidySet object.
- sets
The character of sets to be intersect.
- ...
Other named arguments passed to
FUN
.- name
The name of the new set. By defaults joins the sets with an ∪.
- FUN
A function to be applied when performing the union. The standard intersection is the "min" function, but you can provide any other function that given a numeric vector returns a single number.
- keep
A logical value if you want to keep originals sets.
- keep_relations
A logical value if you wan to keep old relations.
- keep_elements
A logical value if you wan to keep old elements.
- keep_sets
A logical value if you wan to keep old sets.
Details
#' The default uses the min
function following the standard fuzzy definition, but it can
be changed.
Methods (by class)
intersection(object = TidySet, sets = character)
: Applies the standard intersection
See also
Other methods that create new sets:
complement_element()
,
complement_set()
,
subtract()
,
union()
Other methods:
TidySet-class
,
activate()
,
add_column()
,
add_relation()
,
arrange.TidySet()
,
cartesian()
,
complement_element()
,
complement_set()
,
complement()
,
element_size()
,
elements()
,
filter.TidySet()
,
group_by.TidySet()
,
group()
,
incidence()
,
is.fuzzy()
,
is_nested()
,
move_to()
,
mutate.TidySet()
,
nElements()
,
nRelations()
,
nSets()
,
name_elements<-()
,
name_sets<-()
,
name_sets()
,
power_set()
,
pull.TidySet()
,
relations()
,
remove_column()
,
remove_element()
,
remove_relation()
,
remove_set()
,
rename_elements()
,
rename_set()
,
select.TidySet()
,
set_size()
,
sets()
,
subtract()
,
union()
Examples
rel <- data.frame(
sets = c(rep("A", 5), "B"),
elements = c("a", "b", "c", "d", "f", "f")
)
TS <- tidySet(rel)
intersection(TS, c("A", "B")) # Default Name
#> elements sets fuzzy
#> 1 f A∩B 1
intersection(TS, c("A", "B"), "C") # Set the name
#> elements sets fuzzy
#> 1 f C 1
# Fuzzy set
rel <- data.frame(
sets = c(rep("A", 5), "B"),
elements = c("a", "b", "c", "d", "f", "f"),
fuzzy = runif(6)
)
TS2 <- tidySet(rel)
intersection(TS2, c("A", "B"), "C")
#> elements sets fuzzy
#> 1 f C 0.4028812
intersection(TS2, c("A", "B"), "C", FUN = function(x){max(sqrt(x))})
#> elements sets fuzzy
#> 1 f C 0.8772857