Functionality to decorate R6 Distributions (and child classes) with extra methods.

decorate(distribution, decorators)

Arguments

distribution

distribution to decorate

decorators

list of decorators

Value

Returns a decorated R6 object inheriting from class SDistribution with the methods listed from one of the available decorators added to the SDistribution methods.

Details

Decorating is the process of adding methods to classes that are not part of the core interface (Gamma et al. 1994). Use listDecorators to see which decorators are currently available. The primary use-cases are to add numeric results when analytic ones are missing, to add complex modelling functions and to impute missing d/p/q/r functions.

The decorators parameter should either be a list of decorator classes (i.e. not as strings) or a single decorator class; see examples.

References

Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. 1994. “Design Patterns: Elements of Reusable Object-Oriented Software.” Addison-Wesley.

See also

listDecorators for available decorators.

Examples

B <- Binomial$new() decorate(B, CoreStatistics)
#> B is now decorated with CoreStatistics
#> Binom(prob = 0.5, size = 10)
E <- Exponential$new() decorate(E, list(CoreStatistics, ExoticStatistics))
#> E is now decorated with CoreStatistics,ExoticStatistics
#> Exp(rate = 1)