Learn R Programming

mlr3misc (version 0.22.0)

Dictionary: Key-Value Storage

Description

A key-value store for R6::R6 objects. On retrieval of an object, the following applies:

  • If the object is a R6ClassGenerator, it is initialized with new().

  • If the object is a function, it is called and must return an instance of a R6::R6 object.

  • If the object is an instance of a R6 class, it is returned as-is.

Default argument required for construction can be stored alongside their constructors by passing them to $add().

Arguments

S3 methods

Public fields

items

(environment())
Stores the items of the dictionary

Methods


Dictionary$new()

Construct a new Dictionary.

Usage

Dictionary$new()


Dictionary$format()

Format object as simple string.

Usage

Dictionary$format(...)

Arguments

...

(ignored).


Dictionary$print()

Print object.

Usage

Dictionary$print()


Dictionary$keys()

Returns all keys which comply to the regular expression pattern. If pattern is NULL (default), all keys are returned.

Usage

Dictionary$keys(pattern = NULL)

Arguments

pattern

(character(1)).

Returns

character() of keys.


Dictionary$has()

Returns a logical vector with TRUE at its i-th position if the i-th key exists.

Usage

Dictionary$has(keys)

Arguments

keys

(character()).

Returns

logical().


Dictionary$get()

Retrieves object with key key from the dictionary. Additional arguments must be named and are passed to the constructor of the stored object.

Usage

Dictionary$get(key, ..., .prototype = FALSE)

Arguments

key

(character(1)).

...

(any)
Passed down to constructor.

.prototype

(logical(1))
Whether to construct a prototype object.

Returns

Object with corresponding key.


Dictionary$mget()

Returns objects with keys keys in a list named with keys. Additional arguments must be named and are passed to the constructors of the stored objects.

Usage

Dictionary$mget(keys, ...)

Arguments

keys

(character()).

...

(any)
Passed down to constructor.

Returns

Named list() of objects with corresponding keys.


Dictionary$add()

Adds object value to the dictionary with key key, potentially overwriting a previously stored item. Additional arguments in ... must be named and are passed as default arguments to value during construction.

Usage

Dictionary$add(key, value, ..., .prototype_args = list())

Arguments

key

(character(1)).

value

(any).

...

(any)
Passed down to constructor.

.prototype_args

(list())
List of arguments to construct a prototype object. Can be used when objects have construction arguments without defaults.

Returns

Dictionary.


Dictionary$remove()

Removes objects from the dictionary.

Usage

Dictionary$remove(keys)

Arguments

keys

(character())
Keys of objects to remove.

Returns

Dictionary.


Dictionary$prototype_args()

Returns the arguments required to construct a simple prototype of the object.

Usage

Dictionary$prototype_args(key)

Arguments

key

(character(1))
Key of object to query for required arguments.

Returns

list() of prototype arguments


Dictionary$clone()

The objects of this class are cloneable with this method.

Usage

Dictionary$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

Run this code
library(R6)
item1 = R6Class("Item", public = list(x = 1))
item2 = R6Class("Item", public = list(x = 2))
d = Dictionary$new()
d$add("a", item1)
d$add("b", item2)
d$add("c", item1$new())
d$keys()
d$get("a")
d$mget(c("a", "b"))

Run the code above in your browser using DataLab