A lightweight R-language implementation of the affine-invariant sampling method of Goodman & Weare (2010)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
R/rgw reconciled with github Jun 28, 2018
LICENSE Initial commit Oct 10, 2016
README.md fix readme Jun 28, 2018
VERSION.md metadata update consistent with last commit Jun 28, 2018


ascl:1711.006 CRAN MIT License


This package implements in R the affine-invariant sampling method of Goodman & Weare (2010). This is a way of producing Monte-Carlo samples from a target distribution, which can be used for statistical inference.

This R implementation is based on the very clear description given by Foreman-Mackey et al. (2012), who provide an implementation in python.



In R, run install.packages("rgw"). Note that the version hosted on CRAN may lag behind this one (see VERSION.md).

Manually (Linux/Unix/Mac)

  1. Clone this repository.
  2. In a terminal, navigate to the <repository base>/R/.
  3. Run R CMD install rgw. Alternatively, in an R session, run install.packages("rgw", repos=NULL).


Here's the simple example that appears in the documentation:

# In this example, we'll sample from a simple 2D Gaussian.

# Define the log-posterior function
lnP = function(x) sum( dnorm(x, c(0,1), c(pi, exp(0.5)), log=TRUE) )

# Initialize an ensemble of 100 walkers. We'll take 100 steps, saving the ensemble after each.
nwalk = 100
post = array(NA, dim=c(2, nwalk, 101))
post[1,,1] = rnorm(nwalk, 0, 0.1)
post[2,,1] = rnorm(nwalk, 1, 0.1)

# Run
post = GoodmanWeare.rem(post, lnP)

# Plot the final ensemble
plot(post[1,,101], post[2,,101])
# Look at the trace of each parameter for one of the walkers.
# Go on to get confidence intervals, make niftier plots, etc.


Open an issue.