universals provides S3 generic methods and some default implementations for Bayesian analyses that generate Markov Chain Monte Carlo (MCMC) samples.

The purpose of universals is to reduce package dependencies and conflicts.


The methods are primarily designed to be used for Bayesian analyses that generate Markov Chain Monte Carlo (MCMC) samples but many can also be used for Maximum Likelihood (ML) and other types of analyses.

The names of the functions are based on the following definitions/concepts:

  • A term is a single real or integer value.
  • A par (short for parameter) is a numeric object of terms.
  • An MCMC object is a collection of MCMC samples that refer to a set of terms.
  • The samples are arranged in one or more chains of the same length (number of iterations).
  • The number of simulations is the product of the number of iterations and the number of chains.
  • The number of samples is the product of the number of simulations and the number of terms.

The ‘nlist’ package implements many of the methods for its ‘nlists’ class.


To install the latest release from CRAN


To install the developmental version from GitHub

# install.packages("remotes")


universals is designed to be used by package developers.

It is recommended to import and re-export the generics of interest. For example, to provide a method for the S3 pars() method, use the following roxygen2 code:

#' @importFrom universals pars
#' @export



Please report any issues.

Pull requests are always welcome.

Code of Conduct

Please note that the universals project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.