rpact: Confirmatory Adaptive Clinical Trial Design and Analysis

rpact is a comprehensive validated, open source, free-of-charge R software package for:

  • clinical trial planning
  • clinical trial design evaluation and simulation
  • clinical trial data analysis

Functional Range

  • Sample size and power calculation for
    • means (continuous endpoint)
    • rates (binary endpoint)
    • survival trials with
      • piecewise accrual time and intensity
      • piecewise exponential survival time
      • survival times that follow a Weibull distribution
  • Fixed sample design and designs with interim analysis stages
  • Simulation tool for means, rates, and survival data
    • Assessment of adaptive sample size/event number recalculations based on conditional power
    • Assessment of treatment selection strategies in multi-arm trials
  • Adaptive analysis of means, rates, and survival data
  • Adaptive designs and analysis for multi-arm trials
  • Simulation and analysis for enrichment designs testing means, rates, and hazard ratios


Installation from CRAN

# The easiest way to get rpact is to install it from cran: 

Installation of the Developer Version

To install the latest rpact developer version, please follow the instructions described here.

Note that you or your organization must be an active RPACT SLA member to get access to the manual and the latest rpact developer version.

Learn To Use rpact

We recommend three ways to learn how to use rpact:

  1. Use the Shiny app: shiny.rpact.com
  2. Use the Vignettes: www.rpact.com/vignettes
  3. Book a training: www.rpact.com/services


The vignettes are hosted at www.rpact.com/vignettes

Online Help

The online documentation (help files) can be opened here: www.rpact.org/documentation

Additionally there are two different pdf versions of the manual available:

Inline Help

# display the manual of the package
help(package = "rpact")

Getting Started

# load the package

# display the manual of the package
help(package = "rpact")

# create an inverse normal design with default parameters
design <- getDesignInverseNormal()

# take a look at the design and its default values

# create a summary ouput of the design 

# display the design characteristics

# plot the design with default type 1 (Boundary Plot)

# create an 'Average Sample Size and Power / Early Stop' plot
plot(design, type = 2, nMax = 12)

Working with datasets

# create a group sequential design
design <- getDesignGroupSequential(kMax = 4, alpha = 0.025,
    informationRates = c(0.2, 0.5, 0.8, 1),
    futilityBounds = rep(0.5244, 4 - 1),
    typeOfDesign = "WT", deltaWT = 0.45)

# take a look at the design

# create a dataset of means
data <- getDataset(
    n1 = c(22, 11, 22, 11),
    n2 = c(22, 13, 22, 13),
    means1 = c(1, 1.1, 1, 1),
    means2 = c(1.4, 1.5, 3, 2.5),
    stds1 = c(1, 2, 2, 1.3),
    stds2 = c(1, 2, 2, 1.3))

# display the stage results
getStageResults(design = design, dataInput = data, stage = 3)

# display the analysis results
getAnalysisResults(design = design, dataInput = data, equalVariances = TRUE,
    stage = stage, nPlanned = rep(10, kMax - stage),
    thetaH0 = 0, thetaH1 = 1.3, allocationRatioPlanned = 2)

User Concept


  • Everything is starting with a design, e.g.: design <- getDesignGroupSequential()
  • Find the optimal design parameters with help of rpact comparison tools: getDesignSet
  • Calculate the required sample size, e.g.: getSampleSizeMeans(), getPowerMeans()
  • Simulate specific characteristics of an adaptive design, e.g.: getSimulationMeans()
  • Collect your data, import it into R and create a dataset: data <- getDataset()
  • Analyze your data: getAnalysisResults(design, data)

Focus on Usability

The most important rpact functions have intuitive names:

  • getDesign[GroupSequential/InverseNormal/Fisher]()
  • getDesignCharacteristics()
  • getSampleSize[Means/Rates/Survival]()
  • getPower[Means/Rates/Survival]()
  • getSimulation[MultiArm/Enrichment]`[Means/Rates/Survival]()`
  • getDataSet()
  • getAnalysisResults()
  • getStageResults()

RStudio / Eclipse: auto code completion makes it easy to use these functions.

R generics

In general, everything runs with the R standard functions which are always present in R: so-called R generics, e.g., print, summary, plot, as.data.frame, names, length


Several utility functions are available, e.g.

  • getAccrualTime()
  • getPiecewiseSurvivalTime()
  • getNumberOfSubjects()
  • getEventProbabilities()
  • getPiecewiseExponentialDistribution()
  • survival helper functions for conversion of pi, lambda and median, e.g., getLambdaByMedian()
  • testPackage(): installation qualification on a client computer or company server (via unit tests)


Please contact us to learn how to use rpact on FDA/GxP-compliant validated corporate computer systems and how to get a copy of the formal validation documentation that is customized and licensed for exclusive use by your company, e.g., to fulfill regulatory requirements.


  • rpact is a comprehensive validated1 R package for clinical research which
    • enables the design and analysis of confirmatory adaptive group sequential designs
    • is a powerful sample size calculator
    • is a free of charge open-source software licensed under LGPL-3
    • particularly, implements the methods described in the recent monograph by Wassmer and Brannath (2016)

For more information please visit www.rpact.com/products

  • RPACT is a company which offers
    • enterprise software development services
    • technical support for the rpact package
    • consultancy and user training for clinical research using R
    • validated software solutions and R package development for clinical research

For more information please visit www.rpact.com/services


Bugs and Issues

Please use our bug report form to submit bug descriptions and issues in a systematic way: bugreport.rpact.org

  1. The rpact validation documentation is available exclusively for our customers and supporting companies. For more information visit www.rpact.com/services/sla↩︎


Copyright © 2021 RPACT GbR. All rights reserved.
RPACT ® is a registered trademark.