Given a vector of elements generate a power set.
Usage
createPowerset(
elements,
includeEmptySet = TRUE,
result = c("return", "print", "copy", "printCompact", "copyCompact")
)
Arguments
- elements
vector of elements
- includeEmptySet
If
TRUE
, an empty vector is added at the end- result
What to do with the result. Can be either:
"return"
: return list object"print"
: create valid string to callPowerRelation()
oras.PowerRelation()
and print it"copy"
: create valid string to callPowerRelation()
oras.PowerRelation()
and copy it to clipboard"printCompact"
and"copyCompact"
: same as"print"
and"copy"
but without newlines
Value
List of power set vectors.
If the parameter result
is set to "print"
or "copy"
, nothing is returned.
Instead, a character string is generated that can be used in R to call and create a new PowerRelation
object.
This string is either printed or copied to clipboard (see argument result
).
Examples
# normal return type is a list of vectors
createPowerset(c("Alice", "Bob"), includeEmptySet = FALSE)
#> [[1]]
#> [1] "Alice" "Bob"
#>
#> [[2]]
#> [1] "Alice"
#>
#> [[3]]
#> [1] "Bob"
#>
## [[1]]
## [1] "Alice" "Bob"
##
## [[2]]
## [1] "Alice"
##
## [[3]]
## [1] "Bob"
# instead of creating a list, print the power set such that it can be copy-pasted
# and used to create a new PowerRelation object
createPowerset(letters[1:4], result = "print")
#> as.PowerRelation("
#> abcd
#> > abc
#> > abd
#> > acd
#> > bcd
#> > ab
#> > ac
#> > ad
#> > bc
#> > bd
#> > cd
#> > a
#> > b
#> > c
#> > d
#> > {}
#> ")
# prints
# as.PowerRelation("
# abcd
# > abc
# > abd
# > acd
# > bcd
# > ab
# ...
# > {}
# ")
createPowerset(letters[1:3], includeEmptySet = FALSE, result = "printCompact")
#> as.PowerRelation("abc > ab > ac > bc > a > b > c")
# as.PowerRelation("abc > ab > ac > bc > a > b > c")
# create the same string as before, but now copy it to the clipboard instead
if(interactive()) {
createPowerset(1:3, result = "copyCompact")
}
# Note that as.PowerRelation(character) only assumes single-char elements.
# As such, the generated function call string with multi-character names
# looks a little different.
createPowerset(c("Alice", "Bob"), result = "print")
#> PowerRelation(rlang::list2(
#> list(c("Alice", "Bob")),
#> list(c("Alice")),
#> list(c("Bob")),
#> list(c()),
#> ))
# PowerRelation(rlang::list2(
# list(c("Alice", "Bob")),
# list(c("Alice")),
# list(c("Bob")),
# list(c()),
# ))