We have made the spending function summary output more readable and informative.
- Text summaries for spending functions with multiple parameters are now
properly formatted. For instance,
a b = 0.5 1.5
is now displayed asa = 0.5, b = 1.5
(@jdblischak, #162). - The
summary()
method forsfLDOF()
no longer includes the redundantnone = 1
in its output (@jdblischak, #159).
- Added a note about using a positive scalar for
sfupar
insfLDOF()
to create a generalized O'Brien-Fleming spending function (@keaven, 52cc711, 99996b). - Improved math rendering in our pkgdown site vignettes by switching to KaTeX, which is now supported in pkgdown 2.1.0 (@nanxstats, #161).
- Standardized vignette titles and headings by using h2 as the base level and adopting sentence case throughout (@nanxstats, #158).
- Implemented conditional error spending functions
sfXG1()
,sfXG2()
, andsfXG3()
based on Xi and Gallo (2019). Seevignette("ConditionalErrorSpending")
for details and reproduced examples from the literature (@keaven, #147. Thanks, @xidongdxi, for comments on vignette).
- Enhanced
eEvents()
with input validation to ensurelambda
is notNULL
(@keaven, 97f629d).
- Added independent testing for
gsSurvCalendar()
(@myeongjong, #144). - Expanded test coverage for
gsBinomialExact()
(@menglu2, #143).
- Add new vignette on conditional power and conditional error,
see
vignette("ConditionalPowerPlot")
(beb2957, 727fe20, 57394fe). - Fix roxygen2 warning and use magrittr pipes in vignette for consistency (#131).
- Move independently programmed functions for validation as standard test helper files (#130).
gsBoundSummary()
now has theas_rtf()
method implemented to generate RTF outputs for bound summary tables (@wangben718, #107).plotgsPower()
gets new argumentsoffset
andtitleAnalysisLegend
to enable more flexible and accurate power plots (plottype = 2
) (@jdblischak, #121, #123).
- The plotting functions now use
dplyr::reframe()
to replacedplyr::summarize()
when performing groupedcumsum()
(@jdblischak, #114). - The plotting functions are updated to use the
.data
pronoun from rlang withggplot2::aes()
. This simplifies the code and follows the recommended practice when using ggplot2 in packages (@jdblischak, #124). hGraph()
now uses namedguide
argument in thescale_fill_manual()
call to be compatible with ggplot2 3.5.0 (@teunbrand, #115). Note: this function has been deprecated and moved to gMCPLite since gsDesign 3.4.0. It will be removed from gsDesign in a future version. Please usegMCPLite::hGraph()
instead.
vignettes("SurvivalOverview")
is updated with more details and minor corrections (@keaven, #126).- Fix equation syntax in plotting function documentation to render math symbols properly (@keaven, #118).
gsSurv()
andnSurv()
have updated default values forT
andminfup
so that function calls with no arguments will run. Legacy code withT
orminfup
not explicitly specified could break (#105).
gsSurvCalendar()
function added to enable group sequential design for time-to-event outcomes using calendar timing of interim analysis specification (#105).as_rtf()
method forgsBinomialExact()
objects added, enable RTF table outputs for standard word processing software (#102).
toBinomialExact()
andgsBinomialExact()
: fix error checking in bound computations, improve documentation and error messages (#105).print.gsSurv()
: Improve the display of targeted events (very minor). The boundary crossing probability computations did not change. The need is made evident by the addition of thetoInteger()
function (#105).toInteger()
: Fix the documentation and execution based on theratio
argument (#105).- Update the vaccine efficacy, Poisson mixture model, and toInteger vignettes (#105).
- Standardize and improve roxygen2 documentation (#104).
sfPower()
now allows a wider parameter range (0, 15].toInteger()
function added to convertgsDesign
orgsSurv
classes to integer sample size and event counts.toBinomialExact()
function added to convert time-to-event bounds to exact binomial for low event rate studies.- Added "A Gentle Introduction to Group Sequential Design" vignette for an introduction to asymptotics for group sequential design.
as_table()
andas_gt()
methods forgsBinomialExact
objects added, as described in the new "Binomial SPRT" vignette.- In
plot.ssrCP()
, thehat
syntax in the mathematical expression is revised, resolving labeling issues. ggplot2::qplot()
usage replaced due to its deprecation in ggplot2 3.4.0.- Link update for the gsDesign manual in the documentation, now directly pointing to the gsDesign technical manual bookdown project.
- Introduced a new hex sticker logo.
- Removed restriction on
gsCP()
interim test statistic zi (#63). - Removed gMCP dependency. Updated vignettes and linked to vignettes in gMCPLite (#69).
- Added deprecation warning to
hGraph()
and suggested usinggMCPLite::hGraph()
instead (#70). - Moved ggplot2 from
Depends
toImports
(#56).
- Addition of vignettes
- Demonstrate cure model and calendar-based analysis timing for time-to-event endpoint design
- Vaccine efficacy design using spending bounds and exact binomial boundary crossing probabilities
- Minor fix to labeling in print.gsProbability
- Fixed error in sfStep
- Updates to reduce R CMD check and other minor issues
- Use
inherits()
instead ofis()
to determine if an object is an instance of a class, when appropriate - Correctly close graphics device in unit tests to avoid plot output file not found issues
- Minor fixes to hGraph() for multiplicity graphs
- Minor fix to nBinomial() when odds-ratio scale specified to resolve user issue
- Minor changes to vignettes
- Changed gt package usage in a vignette due to deprecated gt function
- Replied to minor comments from CRAN reviewer (no functionality impact)
- Minor update to DESCRIPTION citing Jennison and Turnbull reference
- Substantially updated unit testing to increase code coverage above 80%
- Updated error checking messages to print function where check fails
- Removed dependencies on plyr packages
- Updated github actions
- Vignettes updated
- Added
hGraph()
to support ggplot2 versions of multiplicity graphs - Eliminated unnecessary check from
sequentialPValue
- Targeted release to CRAN
- Removed dependencies on reshape2, plyr
- Updated continuous integration
- Updated license
- Addition of pkgdown web site
- Updated unit testing to from RUnit to testthat
- Converted to roxygen2 generation of help files
- Converted vignettes to R Markdown
- Added Travis-CI and Appveyor support
- Added
sequentialPValue
function - Backwards compatible addition of spending time capabilities to
gsDesign
andgsSurv
- Registered C routines
- Fixed "gsbound"
- Replaced "array" by "rep" calls to avoid
R CMD check
warnings
- First Github-based release
- Cleaned up documentation for
nBinomial1Sample()
- Updated documentation and code (including one default value for an argument) for
nBinomial1Sample()
to improve error handling and clarity - Updated
sfLDOF()
to generalize with rho parameter; still backwards compatible for Lan-DeMets O'Brien-Fleming
- Introduced spending time as a separate concept from information time to enable concepts such as calendar-based spending functions. The only user function changed is the
gsDesign()
function and the change is the addition of the parametersusTime
andlsTime
; default behavior is backwards compatible.
- Simplified conditional power section of gsDesignManual.pdf in doc directory
- Corrected basic calculation in
gsCP()
- Eliminated deprecated ggplot2 function
opts()
- More changes to comply with R standards (in NAMESPACE -
importFrom
statements - and DESCRIPTION - adding plyr to imports) ensuring appropriate references. - Deleted link in documentation that no longer exists (gsBinomialExact.Rd).
- Last planned RForge-based release; moving to Github.
- Updated xtable extension to meet R standards for extensions.
- Fixed
xtable.gsSurv
andprint.gsSurv
to work with 1-sided designs - Update to calls to ggplot to replace show_guide (deprecated) with
show.legend
arguments where used inggplot2::geom_text
calls; no user impact - Minor typo fixed in
sfLogistic
help file - Cleaned up "imports" and "depends" in an effort to be an R "good citizen"
- Registered S3 methods in NAMESPACE
- Minor edit to package description to comply with R standards
- Added
sfTrimmed
as likely preferred spending function approach to skipping early or all interim efficacy analyses; this also can adjust bound when final analysis is performed with less than maximum planned information. Updatedhelp(sfTrimmed)
to demonstrate these capabilities. - Added
sfGapped
, which is primarily intended to eliminate futility analyses later in a study; seehelp(sfGapped)
for an example - Added
summary.spendfn()
to provide textual summary of spending functions; this simplified the print function for gsDesign objects - Added
sfStep()
which can be used to set an interim spend when the exact amount of information is unknown; an example of how this can be misused is provided in the help file - Fixed rounding so that
gsBoundSummary
,xtable.gsSurv
andsummary.gsDesign
are consistent forgsSurv
objects