The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
followup = k correctly represents survival after
k intervals, adding a row at
followup = survival.max + 1 for the final interval’s
estimate.outcome=0 rows from
subsequent periods by truncating each trial at the first event rowexpand.only option to SEQopts(). When
TRUE, SEQuential() returns the expanded
data.table directly and skips the analysis steps, for users
who want to inspect or store the expanded dataset on its own.followup.spline = TRUE so the basis is genuinely
non-linear. Splines are now built into the model formula via
splines::ns() instead of being applied as a single-column
transform of followup, and the new
followup.spline.df option (default 4) controls
the number of basis functions. The treatment-by-followup interaction now
uses the same spline basis. Knots are baked from the full expanded
followup once at fit time so the basis is identical at fit
and prediction time across bootstraps and survival grids. Internally,
formula column extraction now uses all.vars(), so
user-supplied covariates may include ns(),
bs(), I(), factor(),
poly() etc. without breaking expansion.format.time() to format_time()
because it wasn’t an S3 method and hence was causing roxygen2 to write
incorrect information in its helpfile.selection.random not being propagated from
SEQopts() to internal parameters.data.table to 2 threads during tests and vignette
builds, and skip the multisession parallel test on CRAN, to comply with
CRAN’s 2-core policy for checks.SEQopts(nthreads = ...) setting to
data.table during SEQuential(). Previously it
was only used by the parglm backend and ignored in the
default serial fastglm path, so data.table ran
at its global default thread count. The previous global setting is
restored when the call finishes.risk.times option to SEQopts(). When
km.curves = TRUE, risk difference and risk ratio (with CIs)
are reported at each requested follow-up time, not just at the end of
follow-up. Requested times are snapped to the latest available follow-up
at or before them, and the final time is always included. The
risk.comparison and risk.data tables gain a
Followup column.factorize() to also coerce categorical (character)
time-varying covariates - and their baseline (_bas)
counterparts - to factors with levels fixed from the full data.
Previously only fixed and treatment columns were factorized, so a
character time-varying covariate could realise different level sets
across bootstrap resamples and raise “newdata provided does not match
fitted model” (most often in bootstrapped hazard analyses on larger
samples or with a smaller bootstrap.sample). Numeric
time-varying covariates are left unchanged.@outcome.modelkm_curve()local() wrappers and made several code
optimizations.internal.weights().SEQopts().SEQuential() time.col validation
detecting and repairing non-zero-indexed time.eligible.col valuestime_varying.cols and
fixed.colsSEQopts()treat.level values exist in the
treatment columnexcused.cols flagsfollowup.min/max
orderingtreat.level length validation for multinomial and
non-multinomial analysescense.eligible and
weight.eligible_colsfollowup.min and
weight.lower from -Inf to 0internal.plot()km_curve() returning list instead of ggplot for
non-subgroup casekm_curve() subtitle conditionrisk.comparison() CIs being NA with
competing eventscbind() with := in expansion chain
to avoid intermediate copymerge() with data.table native join in
expansion data_list combine stepFALSEmatch(TRUE, ...) instead of
which(...)[1] to find first switch/event per groupsapply loop with single matrix multiply in
multinomial predictioncopy() in data_all construction and free data
list in internal_survival.R to reduce peak memory during bootstrapfollowup==0 before adding trialID in
internal.survival to avoid copying entire expanded datasetset.seed() call in
internal.hazard() to make main estimate reproducible. And
also implement fix to ensure the bootstrapping, including both standard
error and percentiles, is deterministic given the seed.hazard_ratio() function now correctly describes the
estimate as “Hazard ratio”covariates() function now returns more nicely
formatted output (with spaces around ~ and +
symbols in the model formulae)table() call with data.table’s
.Ngc() callscopy()These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.