gsBoundSummary() now displays calendar time forgsNB objects from the gsDesignNB package when analysistimes are provided (plotgsPower() now useslinewidth insteadof deprecatedsize aesthetic forgeom_line()calls, avoiding ggplot2 (>= 3.4.0) warnings (sfXG3() now correctly reports its name as “Xi-Gallo,method 3” instead of “Xi-Gallo, method 1” (plottype = 4) so labels passed totext()match the plotted points. This prevents r-devel (R 4.6.0) truncationwarnings and keeps vdiffr snapshots bitwise reproducible across Rversions (sfXG1(),sfXG2(), andsfXG3() (toBinomialExact() andxtable() (as_gt() snapshot tests for gt 1.1.0compatibility (capture.output() (nNormal() now links tovignette("nNormal")in its See Also section for the full derivation and examples (workflow_dispatch trigger toR CMD check workflow for easier testing on forks (hGraph() has been formally removed from gsDesign(@nanxstats, #215).It was soft-deprecated in gsDesign 3.4.0 and moved to gMCPLite. UsegMCPLite::hGraph() instead.
This change also preemptively fixes anR CMD check issuewith ggplot2 (>= 4.0.0) that would otherwise require declaring MASSas an explicit dependency (tidyverse/ggplot2#6578).
gsAdaptSim() andgsSimulate() (binomialPowerTable()(@DMuriuki,#214).vignette("binomialTwoSample") forbinomial two-arm trial design and analysis (binomialPowerTable() generates powertables across control rates and treatment effects. Supports bothanalytical calculations and fast simulation for exact results.gsBoundSummary() (as updated in gsDesign 3.6.6) did notconsider spending time for alternate alpha levels when thealpha argument was specified. This issue has been resolved;lsTime andusTime are now correctly used forupdated bounds with these alternate alpha levels (as_gt() (DESCRIPTION (toInteger() (gsBoundSummary() gains a new argumentalpha to assemble a summary table with multiple efficacyboundaries (@keaven,#183).gsSurvCalendar() (vdiffr::expect_doppelganger() (CODECOV_TOKEN to fix code coverage uploads (r for controllingnumerical integration grid points (toInteger() (introduced in gsDesign 3.5.0) isupdated to match broader, non-gsDesign conventions for deriving integersample size and event counts (
This update may result in different outputs compared to previousversions. Users who use this function should review the updated functiondocumentation (?toInteger) andvignette("toInteger") for details.
as_rtf() methods (cph role to theAuthors@R fieldfollowing best practices (We have made the spending function summary output more readable andinformative.
a b = 0.5 1.5 is nowdisplayed asa = 0.5, b = 1.5 (summary() method forsfLDOF() nolonger includes the redundantnone = 1 in its output (sfuparinsfLDOF() to create a generalized O’Brien-Flemingspending function (sfXG1(),sfXG2(), andsfXG3()based on Xi and Gallo (2019). Seevignette("ConditionalErrorSpending") for details andreproduced examples from the literature (eEvents() with input validation to ensurelambda is notNULL (gsSurvCalendar() (gsBinomialExact() (vignette("ConditionalPowerPlot") (beb2957,727fe20,57394fe).gsBoundSummary() now has theas_rtf()method implemented to generate RTF outputs for bound summary tables(@wangben718,#107).plotgsPower() gets new argumentsoffsetandtitleAnalysisLegend to enable more flexible andaccurate power plots (plottype = 2) (dplyr::reframe() toreplacedplyr::summarize() when performing groupedcumsum() (.datapronoun from rlang withggplot2::aes(). This simplifies thecode and follows the recommended practice when using ggplot2 in packages(@jdblischak,#124).hGraph() now uses namedguide argument inthescale_fill_manual() call to be compatible with ggplot23.5.0 (@teunbrand,#115).Note: this function has been deprecated andmoved to gMCPLite since gsDesign 3.4.0. It will be removed from gsDesignin a future version. Please usegMCPLite::hGraph()instead.vignettes("SurvivalOverview") is updated with moredetails and minor corrections (gsSurv() andnSurv() have updated defaultvalues forT andminfup so that function callswith no arguments will run. Legacy code withT orminfup not explicitly specified could break (#105).gsSurvCalendar() function added to enable groupsequential design for time-to-event outcomes using calendar timing ofinterim analysis specification (#105).as_rtf() method forgsBinomialExact()objects added, enable RTF table outputs for standard word processingsoftware (#102).toBinomialExact() andgsBinomialExact():fix error checking in bound computations, improve documentation anderror messages (#105).print.gsSurv(): Improve the display of targeted events(very minor). The boundary crossing probability computations did notchange. The need is made evident by the addition of thetoInteger() function (#105).toInteger(): Fix the documentation and execution basedon theratio argument (#105).sfPower() now allows a wider parameter range (0,15].toInteger() function added to convertgsDesign orgsSurv classes to integer samplesize and event counts.toBinomialExact() function added to converttime-to-event bounds to exact binomial for low event rate studies.as_table() andas_gt() methods forgsBinomialExact objects added, as described in the new“Binomial SPRT” vignette.plot.ssrCP(), thehat syntax in themathematical expression is revised, resolving labeling issues.ggplot2::qplot() usage replaced due to its deprecationin ggplot2 3.4.0.gsCP() interim test statistic zi(#63).hGraph() and suggestedusinggMCPLite::hGraph() instead (#70).Depends toImports(#56).inherits() instead ofis() todetermine if an object is an instance of a class, when appropriatehGraph() to support ggplot2 versions ofmultiplicity graphssequentialPValuesequentialPValue functiongsDesign andgsSurvR CMD checkwarningsnBinomial1Sample()nBinomial1Sample() to improve error handlingand claritysfLDOF() to generalize with rho parameter;still backwards compatible for Lan-DeMets O’Brien-FleminggsDesign() function and thechange is the addition of the parametersusTime andlsTime; default behavior is backwards compatible.gsCP()opts()importFrom statements - and DESCRIPTION - adding plyr toimports) ensuring appropriate references.xtable.gsSurv andprint.gsSurv towork with 1-sided designsshow.legend arguments where used inggplot2::geom_text calls; no user impactsfLogistic help filesfTrimmed as likely preferred spending functionapproach to skipping early or all interim efficacy analyses; this alsocan adjust bound when final analysis is performed with less than maximumplanned information. Updatedhelp(sfTrimmed) to demonstratethese capabilities.sfGapped, which is primarily intended toeliminate futility analyses later in a study; seehelp(sfGapped) for an examplesummary.spendfn() to provide textual summary ofspending functions; this simplified the print function for gsDesignobjectssfStep() which can be used to set an interimspend when the exact amount of information is unknown; an example of howthis can be misused is provided in the help filegsBoundSummary,xtable.gsSurv andsummary.gsDesign areconsistent forgsSurv objects