R-CMD-check Codecov test
coverage CRAN


blindrecalc facilitates the planning of a clinical trial with an internal pilot study and blinded sample size recalculation.


Install the current CRAN version of blindrecalc with:


Or install the development version from GitHub with:

# install.packages("devtools")


blindrecalc currently supports continuous and binary endpoints for superiority and non-inferiority test problems. Continuous endpoints are analyzed using Student’s t-test, binary endpoints are analyzed using the Chi-squared test for superiority trials and the Farrington-Manning test for non-inferiority trials. Each design can be defined using a setup-function: setupStudent, setupChiSquare and setupFarringtonManning. For example, to setup a superiority trial with a continuous endpoint:

design <- setupStudent(alpha = 0.025, beta = 0.2, r = 1, delta = 5)

alpha and beta refer to the type 1 and type 2 error rate, r is the sample size allocation ratio and deltais the effect size between the null and the alternative hypothesis. For a non-inferiority trial with a shifted t-test, additionally the argument delta_NI must be specified.

To calculate the sample size for a fixed design, use n_fix:

n_fix(design, nuisance = c(5, 10, 15))
#> [1]  31.39552 125.58208 282.55967

nuisance refers to the nuisance parameter of the design, which in the case of the t-test is the common variance of the outcome variable.

To calculate the type 1 error rate of the design using blinded sample size recalculation, use toer:

toer(design, n1 = c(30, 60, 90), nuisance = 10, recalculation = TRUE)
#> [1] 0.0259 0.0235 0.0252

n1 refers to the sample size of the internal pilot study recalculation = TRUE specifices that the type 1 error rate for a design with blinded sample size recalculation should be computed.

To compute the power of the design, use pow:

pow(design, n1 = c(30, 60, 90), nuisance = 10, recalculation = TRUE)
#> [1] 0.7877 0.8039 0.8056

To calculate the distribution of the total sample sizes use n_dist:

n_dist(design, n1 = c(30, 60, 90), nuisance = 10)
#>     n_1 = 30        n_1 = 60      n_1 = 90    
#>  Min.   : 36.0   Min.   : 63   Min.   : 90.0  
#>  1st Qu.:109.0   1st Qu.:117   1st Qu.:120.0  
#>  Median :131.0   Median :132   Median :133.0  
#>  Mean   :134.1   Mean   :134   Mean   :134.5  
#>  3rd Qu.:155.0   3rd Qu.:150   3rd Qu.:147.0  
#>  Max.   :322.0   Max.   :282   Max.   :223.0


A paper describing blindrecalc can be found here.

Try the blindrecalc package in your browser

Any scripts or data that you put into this service are public.

blindrecalc documentation built on Oct. 4, 2023, 5:06 p.m.