R: Mathematical Multiset

Multiset {set6} | R Documentation

## Mathematical Multiset

### Description

A general Multiset object for mathematical Multisets, inheriting from `Set`.

### Details

Multisets are generalisations of sets that allow an element to be repeated. They can be thought of as Tuples without ordering.

### Super class

`set6::Set` -> `Multiset`

### Methods

#### Public methods

- `Multiset$equals()`

- `Multiset$isSubset()`

- `Multiset$clone()`

Inherited methods

- `set6::Set$add()`

- `set6::Set$contains()`

- `set6::Set$initialize()`

- `set6::Set$multiplicity()`

- `set6::Set$print()`

- `set6::Set$remove()`

- `set6::Set$strprint()`

- `set6::Set$summary()`

#### Method `equals()`

Tests if two sets are equal.

##### Usage

    Multiset$equals(x, all = FALSE)

##### Arguments

`x`

  Set or vector of Sets.

`all`

  logical. If `FALSE` tests each `x` separately. Otherwise returns `TRUE` only if all `x` pass test.

##### Details

An object is equal to a Multiset if it contains all the same elements, and in the same order. Infix operators can be used for:

Equal | `==`
Not equal | `!=`

##### Returns

If `all` is `TRUE` then returns `TRUE` if all `x` are equal to the Set, otherwise `FALSE`. If `all` is `FALSE` then returns a vector of logicals corresponding to each individual element of `x`.

##### Examples

    Multiset$new(1,2) ==  Multiset$new(1,2)
    Multiset$new(1,2) != Multiset$new(1,2)
    Multiset$new(1,1) != Set$new(1,1)

#### Method `isSubset()`

Test if one set is a (proper) subset of another

##### Usage

    Multiset$isSubset(x, proper = FALSE, all = FALSE)

##### Arguments

`x`

  any. Object or vector of objects to test.

`proper`

  logical. If `TRUE` tests for proper subsets.

`all`

  logical. If `FALSE` tests each `x` separately. Otherwise returns `TRUE` only if all `x` pass test.

##### Details

If using the method directly, and not via one of the operators then the additional boolean argument `proper` can be used to specify testing of subsets or proper subsets. A Set is a proper subset of another if it is fully contained by the other Set (i.e. not equal to) whereas a Set is a (non-proper) subset if it is fully contained by, or equal to, the other Set.

When calling `$isSubset` on objects inheriting from Interval, the method treats the interval as if it is a Set, i.e. ordering and class are ignored. Use `$isSubinterval` to test if one interval is a subinterval of another.

Infix operators can be used for:

Subset | `<`
Proper Subset | `<=`
Superset | `>`
Proper Superset | `>=`

An object is a (proper) subset of a Multiset if it contains all (some) of the same elements, and in the same order.

##### Returns

If `all` is `TRUE` then returns `TRUE` if all `x` are subsets of the Set, otherwise `FALSE`. If `all` is `FALSE` then returns a vector of logicals corresponding to each individual element of `x`.

##### Examples

    Multiset$new(1,2,3) < Multiset$new(1,2,3,4)
    Multiset$new(1,3,2) < Multiset$new(1,2,3,4)
    Multiset$new(1,3,2,4) <= Multiset$new(1,2,3,4)

#### Method `clone()`

The objects of this class are cloneable with this method.

##### Usage

    Multiset$clone(deep = FALSE)

##### Arguments

`deep`

  Whether to make a deep clone.

### See Also

Other sets: `ConditionalSet`, `FuzzyMultiset`, `FuzzySet`, `FuzzyTuple`, `Interval`, `Set`, `Tuple`

### Examples

    # Multiset of integers
    Multiset$new(1:5)

    # Multiset of multiple types
    Multiset$new("a", 5, Set$new(1), Multiset$new(2))

    # Each Multiset has properties and traits
    t <- Multiset$new(1, 2, 3)
    t$traits
    t$properties

    # Elements can be duplicated
    Multiset$new(2, 2) != Multiset$new(2)

    # Ordering does not matter
    Multiset$new(1, 2) == Multiset$new(2, 1)

    ## ------------------------------------------------
    ## Method `Multiset$equals`
    ## ------------------------------------------------

    Multiset$new(1,2) ==  Multiset$new(1,2)
    Multiset$new(1,2) != Multiset$new(1,2)
    Multiset$new(1,1) != Set$new(1,1)

    ## ------------------------------------------------
    ## Method `Multiset$isSubset`
    ## ------------------------------------------------

    Multiset$new(1,2,3) < Multiset$new(1,2,3,4)
    Multiset$new(1,3,2) < Multiset$new(1,2,3,4)
    Multiset$new(1,3,2,4) <= Multiset$new(1,2,3,4)

[Package set6 version 0.2.4 Index]