TableSubgroupGLM / TableSubgroupMultiGLM now preserve offset() terms when estimating subgroup effects and interaction P values. Previously, Poisson-type subgroup tables could show NA estimates and incorrect interaction P values.TableSubgroupGLM mixed Gaussian models now fall back safely when lmerTest fails under incompatible lmerTest / lme4 combinations, and mixed-model P values are still extracted when the coefficient table has no Pr column.CreateTableOneJS / svyCreateTableOneJS no longer emit coercion warnings while building significance markers from blank or formatted P values.coxme.display now collapses multiple random-effect terms before rebuilding univariate formulas, preventing deprecated formula(x) warnings with more than one random effect.svyCreateTableOneJS / svyCreateTableOne2 now display integer counts (no .0 suffix) when n_original = TRUE. Previously, categorical variable frequencies and the n row were formatted as floats (e.g., 12345.0) even after replacing weighted counts with original data.svyCreateTableOne2 now correctly labels the "Overall" column when using addOverall = TRUE with Labels = TRUE. Previously, the "Overall" header was missing, causing column name misalignment.TableSubgroupGLM / TableSubgroupMultiGLM now fully support family = "quasibinomial" for survey-weighted logistic regression. Previously, "quasibinomial" was not mapped to quasibinomial() for svyglm, exp() was not applied to coefficients, and the column was not named "OR".TableSubgroupGLM / TableSubgroupMultiGLM now automatically convert factor outcomes to numeric (0/1) for survey data with binomial/quasibinomial family. Previously, factor outcomes caused "'-' not meaningful for factors" error with svyglm.count_event_by_glm now handles data.table input correctly by converting to data.frame before column subsetting. Previously, data.table objects from survey.design$variables caused "column name 'required_vars' is not found" error.deparse(formula) with deparse1(formula) in TableSubgroupGLM, TableSubgroupMultiGLM, TableSubgroupCox, and TableSubgroupMultiCox to suppress "Using formula(x) is deprecated when x is a character vector of length > 1" warnings with long formulas.svyCreateTableOneJS / svyCreateTableOne2 now display actual sample sizes in the n row instead of weighted totals when n_original = TRUE. Previously, the n row showed the sum of survey weights (e.g., 181,174,390) instead of the original sample count (e.g., 23,641). Supports no-strata, single-strata, and compound-strata cases..display functions (cox2.display, svycox.display, svyregress.display, geeglm.display, lmer.display) now correctly handle models with interaction terms (e.g., a*b or a:b). This prevents dimension dropping or row matching errors during formatting.glmshow.display now correctly preserves the offset term (e.g., offset(log(n))) when calculating crude estimates. This ensures statistically accurate univariate results for Poisson and other GLM models by maintaining the same exposure baseline.svyregress.display no longer errors when pcut.univariate selects a single variable (prevents dimension dropping).svycox.display now preserves matrix dimensions when subsetting to a single selected term with pcut.univariate.CreateTableOneJS and CreateTableOne2 now have correct headers for overall and strata columns.TableSubgroupCox and TableSubgroupMultiCox now correctly maintain Count and Percent from original data in competing risk analysisdata_original is provided, Count and Percent are calculated from the original data instead of finegray-transformed dataTableSubgroupCox and TableSubgroupMultiCox now support competing risk analysis with proper cumulative incidence calculationdata_original and formula_original parameters to TableSubgroupCox and TableSubgroupMultiCox for competing risk analysissurvfit() with factor event variable on the original datacox2.display now properly handles multi-state models automatically without the msm parameter.event_msm is applied,cox2.display only returns the output with the selected variables.TableSubgroupMultiCox now correctly extracts p-values from survey Cox models (svycoxph) by using the last column index instead of hardcoded column 5cox2.display now correctly handles strata() terms in coxph modelscox2.display now properly handles variables with no variation in complete cases during univariate analysiscox2.display correctly filters out NA p-values when using pcut.univariate optioncox2.display now properly handles data.table objects with data_for_univariate parametercox2.display shows adjusted HR properly and also handles clustered coxph model properly.pcut.univariate is applied, cox2.display now correctly shows metrics (N, AIC, C-index, Events) from the selected model with significant variables@importFrom survival Surv for proper NAMESPACE generationglmshow.display now properly handles interaction terms with pcut.univariate optionglmshow.display correctly maintains variable order when selecting significant variables with interaction termsglmshow.display now displays proper reference levels for interaction terms with multi-level factors (e.g., "wt:cyl: ref.=4")geeglm.display now correctly uses data_for_univariate with pcut.univariate to refit model with selected variables only, updating N accordinglylmer.display now correctly uses data_for_univariate with pcut.univariate to refit model with selected variables only, updating N and other metrics accordinglyLabeljsTable now supports interaction terms, applying labels to both main effects and interaction coefficientsCreateTableOneJS and svyCreateTableOneJS, column names are more descriptive when using psub = T with strata, strata2.data_for_univariate in cox2.display, geeglm.display, lmer.display, crude p-values in univariate tables are now computed directly from the raw data passed via data_for_univariate.cox2.display when all status 0cox2.display when all status 0 (isList, column&row name diff check)id and weight columns from input data in the Cox module.labeldata option in TableSubgroupGLM, TableSubgroupMultiGLM, TableSubgroupCox, TableSubgroupMultiCoxcox2.display HRTableSubgroupMultiGLM when covariatesforestcox when categorical binary outcomeforestglm when categorical covariatesforestcox and forestglm with datatype of P value in tableforestcoxforestcoxaddOverall options to svyCreateTableOneJSTableSubgroupCoxweights option to TableSubgroupCox and TableSubgroupMultiCox for marginal cox model. ex: weights = "weights"strata option to TableSubgroupCox and TableSubgroupMultiCox for marginal cox model. ex: strata = "sex"TableSubgroupMultiCox with clusterTableSubgroupCox and TableSubgroupMultiCoxcox2.display.cluster option to TableSubgroupCox and TableSubgroupMultiCox for marginal cox model. ex: cluster = "inst"forestcox and forestglm.svycox and svyglm.lmer.coxme.cox2.glmshow.normalityTest option to CreateTableOneJS to perform the Shapiro test for all variables.glmshow.display and TableSubgroupMultiGLMmortTableSubgroupGLM: thanks for weisx2022TableSubgroupCox: thanks for ciciingsvyglm ( thanks for cyk0315)addOverall options to CreateTableOneJS and svyCreateTableOneJS to add overall column.mk.levLabelepiDisplay: thanks for thisis05TableSubgroupCox: thanks for Ding-yuan Wancoxme.display: thanks for Cristina Ganuza VallejoTableSubgroupGLM & TableSubgroupCox allow subgroup variable with continuous.*.display: univariate analysis with stats::updatesvyCreateTableOneJS in example/test.svycox.displayRemove dependency with group_split function (dplyr package)
Use survey::regTermTest for interaction p calculation with survey::svycoxph.
CreateTableOneJS, svyCreateTableOneJS: when with labeldata, variables other than numeric or factor types are excluded.TableSubgroupGLM, TableSubgroupMultiGLM: p valueTableSubgroupGLM, TableSubgroupMultiGLM: subgroup analysis for GLM(gaussian, logistic)showpm option with showAllLevels = F when no strata.TableSubgroupCox: apply extend = T option to summary.survfit
LabelepiDisplay, LabeljsTable with only 1 independent variable.
CreateTableOneJS, svyCreateTableOneJS: Add showpm option to show normal distributed continuous variables as Mean ± SD.LabelepiDisplay, LabeljsTable: label error.TableSubgroupCox: error with too large time_eventrateBugfix TableSubgroupCox: error with factor variable including NA.
Update TableSubgroupCox: compatible with upcoming survival pacakge update.
svycox.display: compatible with upcoming survival pacakge update.CreateTableOneJS with 2 level strata & psub = F.Additional bug fix: match with survival3.1-x.
class issue: https://developer.r-project.org/Blog/public/2019/11/09/when-you-think-class.-think-again/index.html
TableSubgroupCox.TableSubgroupCox.geeglm.display.CreateTableOneJS and svyCreateTableOneJS can get simplified table with showAllLevels = F option.TableSubgroupMultiCox: Get sub-group analysis table for forestplot with Cox/svycox model.CreateTableOneJS and svyCreateTableOneJS according to tableone package(0.10.0).cox2.displayUpdate travis-ci
Add appveyor CI to test window environment
Add vignettes
glmshow.displaysvyCreateTableOne2, svyCreateTableOneJS, LabelJsTable, LabelepiDisplay and svyregress.displaycoefNA can be used in svyregress.displaysvyglm function.
Apply testhat.
Auto-selection between Chi-square test and Fisher's exact test in CreateTableOneJS, CreateTableOne2.
Table 1 for survey data: svyCreateTableOne2 and svyCreateTableOneJS are modified functions of svyCreateTableOne(tableone package).
New function: coefNA
Bug fixes: Coefficients in glmshow.display, cox2.display
cox2.displayglmshow.display, cox2.display, geeglm.display, coxme.displayglmshow.display: table from glm.object.LabelepiDisplay: column name issue.svycox.display: table from svycoxph.object in survey packagesvyregress.display: table from svyglm.object in survey packageUpdate: cox2.display function allows data argument.
Remove jsBasicGadget : Move to jsmodule package.
Shiny gadget for descriptive statistics: jsBasicGadget
Rstudio Addin of jsBasicGadget: jsBasicAddin
geeExp, lmerExp functioncoxExp, cox2.display functionTable from coxph.object (survival package) - allow cluster & frailty options: cox2.display function
Apply label information to cox2.display: LabeljsCox function
Apply label information to geeglm.display: LabeljsGeeglm function
geeglm.display functionApply label information to epiDisplay.object: LabelepiDisplay function
Apply label information to lmer.display, coxme.display: LabeljsMixed function
coxme.object (coxme package): coxme.display functionopt.tb1 from 10 to 25.