Pre-release of {ggsimplex}

Behind the scenes of an unplanned pre-release.

Hi there,

in this newsletter, I will share some behind-the-scenes of the first R package I have ever released: {ggsimplex}. It all started about a year ago: In early 2022, I was dabbling with some statistics simulations. In Bayesian statistics, we can compute so-called "posterior model probabilities" (PMPs). PMPs are literally the probability of a model (from a set of candidate models), given some data set. I was interested in how these PMPs react if I change the data just a bit. If the PMPs change drastically, that's an indicator of a not-so-robust analysis.

But when I simulate 1000 data sets and get 1000 sets of PMPs, eyeballing a huge table won't do the trick. Also, I want to visualize densities of distributions that approximate a sample of PMPs. Long story short, I couldn't find an R package that did just what I needed, so I built a package myself. And when I say "I built a package", I mean: "I threw together some functions for a ggplot extension and didn't write tests or documentation". So far, so good. I have been using this "package" for the past year and it has been pretty handy for internal use.

Last month, our latest paper (arXiv Link) has been accepted at a major conference: AISTATS 2023. This put a bunch of eyeballs onto the paper, and some enthusiastic people even reached out to me asking for code. "Sure", I thought, "I have curated this nice private GitHub repository for the paper and I'll just hit the button to make it public."

"Umm, wait" ... I realized that almost all plots in the paper rely on this internal "package". I wouldn't want anyone to see that hot untested mess. Then again, I am an advocator for open and reproducible science, so I really wanted to make the code self-consistent. And that's why I chose to pre-release the {ggsimplex} package. I have put warnings all over the GitHub page and even include a "warning" upon loading the package. And I have dedicated a blog post to a very minimal tutorial on how others can use this hot mess of a package as well — if they really really want to.

You'll find my brief rundown of the package in this blog post.

Cheers, Marvin