Specify (Pre)Registrations and Export Them Human- And Machine-Readably

The pkgdown website for this project is located at https://r-packages.gitlab.io/preregr.

Preregistrations, or more generally, registrations, enable explicit timestamped and (often but not necessarily publicly) frozen documentation of plans and expectations as well as decisions and justifications. In research, preregistrations are commonly used to clearly document plans and facilitate justifications of deviations from those plans, as well as decreasing the effects of publication bias by enabling identification of research that was conducted but not published. Like reporting guidelines, (pre)registration forms often have specific structures that facilitate systematic reporting of important items. The preregr package facilitates specifying (pre)registrations in R and exporting them to a human-readable format (using R Markdown partials or exporting to an HTML file) as well as human-readable embedded data (using JSON), as well as importing such exported (pre)registration specifications from such embedded JSON.


You can install the released version of preregr from CRAN with:


You can install the development version of preregr from GitLab with:


(assuming you have remotes installed; otherwise, install that first using the install.packages function)

You can install the cutting edge development version (own risk, don’t try this at home, etc) of preregr from GitLab with:


Included (pre)registration forms

At the moment, five forms come pre-installed with preregr:

Of course, it would be great to add more! Check out the vignette about specifing a (pre) registration form using a spreadsheet and have a look at the specifications of these examples (linked to from that vignette) to get started.

Once you’re happy with your form, contact Gjalt-Jorn through, for example, or https://twitter.com/matherion - or better yet, if you’re familiar with Git, add your form yourself to this file and submit a merge request (to the dev branch).

Future Hopes and plans

  • Add more (pre)registration forms to the package
  • Properly set the validations and value templates for the currently included forms
  • Add a way to specify ‘multiple choice’ (as opposed to ‘single choice’) items
  • Add a way to specify an ‘other’ option for items
  • Allow specifying content for an item multiple times (as required by the PRP-QUANT form)
  • Explore whether it’s possible to create a Shiny app that imports a form specification, lets people complete it (i.e. show an actual form), and lets them download the produced HTML file
  • Improve the currently very rudimentary preregr::form_to_rmd_template() function to create a R Markdown template (cf the prereg package; CRAN link)
  • Integrate with related packages, e.g.:
    • The Workflow for Open Reproducible Code in Science (worcs)
    • the Scienceverse (scienceverse)
    • the Reproducible Open Coding Kit (rock)


The logo contains the Center for Open Science preregistration badge, licensed under CC-BY by David Mellor, and originally created by …