Getting Started
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.
Verify R Access
You need a working R environment before anything else. Choose one of the following options.
Option A: Posit Cloud (Recommended for Getting Started)
Posit Cloud runs R in your browser — no installation required. This is the fastest path to a working environment.
- Go to posit.cloud
- Sign up for a free account
- Click New Project → New RStudio Project
- You’re in — a full R/RStudio environment running in your browser
The free tier is sufficient for learning and exploration. If you find yourself doing heavier work, a paid tier is available, but you won’t need it to follow this guide.
Option B: Local Installation
If you prefer to work locally on your own machine:
- Download and install R from cran.r-project.org
- 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.
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.
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.
- Go to github.com and click Sign up
- Use a personal email address — not a company address. This account travels with your career
- Choose a professional username (your name or initials works well)
- 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
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.
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.
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()andtbl_regression()
Additional Packages Worth Knowing
Once you’re comfortable with {admiral} and {gtsummary}, explore the broader ecosystem:
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:
- Fork the repo to your own account
- In Posit Cloud, New Project → New Project from Git Repository and paste your fork’s URL
- Set up a GitHub token once (
usethis::create_github_token(), thengitcreds::gitcreds_set()) so you can push - Make a branch in the RStudio Git pane, run the script, and confirm you see output
- Edit the
YOUR TURNblock so it answers one more question about the data - 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.
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.