Getting Started

Set up your R environment, create a GitHub account, and explore the pharmaverse ecosystem

Work through these steps in order. Each one builds on the last. Steps 1–3 can be done in an afternoon — get your environment up and start writing code as soon as possible.


Step 1

Verify R Access

You need a working R environment before anything else. Choose one of the following options.

Option B: Local Installation

If you prefer to work locally on your own machine:

  1. Download and install R from cran.r-project.org
  2. Download and install RStudio Desktop (free) from posit.co/download/rstudio-desktop

Verify It Works

Once you’re in RStudio, paste this into the Console and press Enter:

print("Hello, pharmaverse!")

If you see [1] "Hello, pharmaverse!" in the output, you’re ready.

TipComing from SAS

The RStudio Console is roughly analogous to the SAS Program Editor + Log window combined. Output appears below your code. The Environment pane (top right) shows your active objects — think of it as a live PROC CONTENTS view of your workspace.


Step 2

Create a Personal GitHub Account

GitHub is the collaboration platform used across the entire pharmaverse ecosystem. You’ll need an account to follow package discussions, browse issues, and eventually submit contributions.

  1. Go to github.com and click Sign up
  2. Use a personal email address — not a company address. This account travels with your career
  3. Choose a professional username (your name or initials works well)
  4. Complete email verification

Getting Oriented on GitHub

You don’t need the command line yet. Start by exploring GitHub through your browser:

  • Browse the admiral repository — notice the Issues tab, Pull Requests, and Discussions
  • Read a few open Issues to see how development conversations happen
  • Click the Star button on repos you want to follow — it’s the GitHub equivalent of bookmarking
NoteWhy GitHub matters here

The pharmaverse is built on GitHub. Every package discussion, bug report, feature request, and code contribution happens there. Browsing issues — even just reading them — is one of the best ways to understand how a package works and what problems it’s solving.


Step 3

Explore the Pharmaverse Examples Site

The pharmaverse examples site is the best single resource for seeing how packages work together in realistic clinical programming scenarios.

pharmaverse.github.io/examples

Where to Start

Section Why It’s Useful
ADSL Subject-level dataset — the ADaM foundation; most familiar starting point
ADAE Adverse events — familiar clinical territory from SAS work
TLG Tables, Listings, and Graphs — see both ARD-based and traditional approaches
Exposure-Response A newer framework: ADER, ADEE, ADES, ADTRR

Suggested Approach

Pick one dataset section — ADSL is a good starting point — and read through it end-to-end. Don’t worry about understanding every line of R code. Focus on the structure:

  • Inputs: SDTM domains you recognize (DM, EX, DS, etc.)
  • Transformations: {admiral} function calls doing the derivation work
  • Outputs: ADaM variables with the CDISC names you know

The clinical logic will be familiar. The R syntax is what’s new.


Step 4

Review Key Package Documentation Sites

The pharmaverse is a family of interoperable packages. Start with these two, which cover the two main areas of clinical R work.

{admiral} — ADaM Dataset Derivation

pharmaverse.github.io/admiral

{admiral} is the R package for building ADaM datasets. If you’ve written SAS macros for ADSL, ADAE, or BDS datasets, this is where the translation from SAS to R will feel most natural.

Key pages to visit first:

  • Get Started — a guided introduction to the package and its design philosophy
  • Reference — function documentation (like a PROC CONTENTS for the package API)
  • Articles — deeper walkthroughs organized by dataset type
  • Changelog — shows how the package evolves; useful for understanding the development culture

{gtsummary} — Summary Tables

danieldsjoberg.com/gtsummary

{gtsummary} produces publication-ready summary and analysis tables. It’s approachable, well-documented, and one of the packages featured in the 2026 Hackathon series.

Key pages to visit:

  • Get Started — builds your first summary table in a few lines of code
  • Gallery — shows the full range of output types
  • Articles — covers clinical trial-specific patterns including tbl_summary() and tbl_regression()

Additional Packages Worth Knowing

Once you’re comfortable with {admiral} and {gtsummary}, explore the broader ecosystem:

{xportr}
Write CDISC-compliant XPT transport files for regulatory submission. The R replacement for PROC COPY / XPORT.
Documentation →
{metacore}
Work with ADaM and SDTM metadata specifications. Ingest specs from Excel, validate, and drive derivations.
Documentation →
{teal}
Build interactive Shiny-based clinical data exploration applications. Used across multiple pharma companies.
Documentation →
{logrx}
GxP-compliant logging for clinical R programs. Captures session info, package versions, and execution details.
Documentation →
{cards} / {cardx}
Analysis Results Data (ARD) framework. Structured output objects that feed cleanly into gtsummary and other reporting tools.
Documentation →
{metatools}
Utilities for working with metadata in the pharmaverse. Companion to metacore for building and validating specs.
Documentation →

Step 5

Practice the GitHub Contribution Workflow

Reading about pull requests is not the same as opening one. Before the hackathon, run through a full contribution loop once — on a repo where nothing you do matters.

github.com/jeffreyad/pharmaverse-practice

This is a small companion sandbox to this guide. It has one short R script that loads the CDISC pilot DM (Demographics) domain from {pharmaversesdtm} — no data download — and prints a couple of dplyr summaries.

Do the whole thing in Posit Cloud, the same browser-based RStudio from Step 1, Option A. There is no local Git install, no GitHub Desktop, and nothing that depends on your work laptop’s operating system.

The exercise is the Git workflow around it:

  1. Fork the repo to your own account
  2. In Posit Cloud, New Project → New Project from Git Repository and paste your fork’s URL
  3. Set up a GitHub token once (usethis::create_github_token(), then gitcreds::gitcreds_set()) so you can push
  4. Make a branch in the RStudio Git pane, run the script, and confirm you see output
  5. Edit the YOUR TURN block so it answers one more question about the data
  6. Commit and push from the Git pane, then open a pull request on GitHub

The pull request does not need to be merged — submitting it is the practice. The README in that repo walks through every step in detail.

TipComing from SAS

Forking is like taking your own copy of a study area; a branch is a scratch version of that copy you can change freely without touching the original. The pull request is the formal “please review my changes” step — the GitHub equivalent of handing work to a lead programmer for QC.


Suggested Learning Sequence

Use this timeline to build skills progressively. The targets are loose — adjust to your pace.

Week 1
Environment & Orientation
Complete Steps 1–3: R access, GitHub account, and a first pass through the pharmaverse examples site. This should take a few hours, not a few weeks.
Weeks 2–4
First R Code
Work through the admiral Get Started guide. Try running one ADSL or ADAE example end-to-end on your own. Focus on understanding the function calls, not memorizing syntax.
Weeks 4–6
Output Generation
Work through the gtsummary tutorial and build one summary table. Browse open issues on the gtsummary GitHub repository — read the discussions to understand how contributors and maintainers interact.
Before the hackathon
Hackathon Preparation
Attend the gtsummary/cards kick-off session (Week 1 of the hackathon). Review the curated issues. Identify one issue you'd like to work on. Mentors will be available throughout.