The objective of the R Consortium R submission pilot 1 project is to test the concept that an R language based submission package can meet the needs and the expectations of the FDA reviewers, including assessing code review and analyses reproducibility. All submission materials and communications from this pilot are publicly available, with the aim of providing a working example for future R language based FDA submissions. This is a FDA-industry collaboration through the non-profit organization R Consortium.

The working group website.

The RConsortium/submissions-pilot1 repo demonstrates an approach to organize internal developed R functions and tables, listings, and figures (TLFs) generation programs using an R package.

The RConsortium/submissions-pilot1-to-fda repo demonstrates the eCTD submission package based on the RConsortium/submissions-pilot1 repo.

FDA response

Running environment

The project is developed and tested in the environment below:

Folder structure

The work in this repo is organized as an R package following the concepts discussed in:

More details related to organize a clinical project and submission package can be found in Chapter 10–15 of the R for Clinical Study Reports and Submission book.

R functions and analysis scripts

In short, the project is organized as an R package.

  • pilot1wrappers.Rproj: RStudio project file used to open the project.
  • DESCRIPTION: Metadata for a package including authors, license, dependency, etc.
  • vignettes/: Analysis scripts using R Markdown.
  • R/: Project-specific R functions.
  • man/: Manual of project-specific R functions.


The source dataset is in the adam/ folder. The original data is from the PHUSE Github repository.

Startup files

  • inst/startup.R: The primary startup file. It configures the running environment, including R version, package repository, folder paths, and other parameters.
  • .Rprofile: An entry point file ensuring inst/startup.R execution during development, such as opening the project in RStudio, using devtools::load_all(), or using RStudio build panel features.
  • R/zzz.R: Another entry point file, triggering inst/startup.R during package loading via library().


  • output/: TLF outputs generated by R Markdown files in the vignettes/ folder.


The original code is prepared and executed on Ubuntu 20.04.3 LTS. We use renv to ensure reproducibility for R version and R package versions.

  • renv.lock and renv/ folder: R package management using the renv package. (Introduction)


  • _pkgdown.yml: pkgdown configuration file.