- Generalized all variable names in AI Assistant prompts to use placeholder patterns (
_varsuffix), making code examples applicable to any dataset instead of being tied to specific example data (e.g.,age,sex,time,status,rx). - Added
# IMPORTANT: Replace with your actual variable namescomments to all code examples in AI prompts to guide users in adapting generated code to their data. - Improved AI Assistant prompt clarity by replacing dataset-specific examples with generic placeholders across all statistical analysis sections.
- Fixed AI Assistant result handling to properly support mixed result types (tables, plots, and flextables) returned from analysis code.
- Introduced the
jsmodule AI Assistant, which connects to Anthropic, OpenAI, and Google LLMs so you can generate analyses, scripts, and export-ready visuals without leaving the app. - The assistant automatically leverages context captured in
Data Manager, enabling follow-up questions that reference earlier tables or plots. - Prompts never include row-level data, and the execution sandbox blocks dangerous calls, preventing direct data exposure and prompt-injection attacks.
- Unified AI configuration panel with provider picker, API-key validation, and automatic model discovery for each provider.
- Model-aware code generation with integrated editing, execution, and copy-to-clipboard shortcuts plus toast confirmations.
- Conversation history with live rendering of user/assistant messages, downloadable transcripts, and per-session token/cost tracking.
- Result viewers for tables, plots, and flextables, including export options to PPTX, Word, Excel, and TXT.
- Contextual helper actions (error-to-prompt conversion, code summary, save chat) to streamline iterative AI-assisted analysis.
- Introduced
DataManagerR6 class to streamline data loading and preprocessing across Shiny modules, reducing code duplication.
- Added a checkbox to select the style of p-value:
exact numberorstars. - Added a optionUI feature in scatter plot including color pallette feat.
- Fixed an error for the
boxplot.
- Added an option to the
Kaplan-Meier moduleto show censored counts in the numbers-at-risk table. When enabled, default label is automatically extended from "Numbers at risk" to "Numbers at risk (number censored)". - Added AUC and Brier Score metrics for time-dependent
ROCanalysis Harrell’s C-indexnow updates dynamically based on the selected analysis time.
- Fixed an error when selecting factor (categorical) predictors in
ROCanalysis. - Fixed an error for
geeglmcaused by unsorted cluster id (now sorted before fitting).
- refactor ROC time dependent table function (remove for statement)
- add new column in ROC time dependent table (CI & p-value difference of AUC & Brier)
- "survive"" library dependent issue in ROC time dependent feat
- remove error message when add new model in ROC time dependent feat
- fix remove model button that remain removed label issue in ROC time dependent feat
- Update: simplified file input functions.
- Update: Modified the Fine-Gray module to use the
idargument.
- Fix: default cut-off value in
rocModuleandrocModule2when there is only one independent variable. - Fix: Kaplan-Meier plots now work when "Time by" is below 1.
- Added Brier and AUC calculation to timeroc functionality; fixed bugs.
- New addin: templateGenerator, make your shiny in ease.
- Independant variable can be selected continuously when there is vec.event and vec.time
- Modified the jsmodule theme to enhance visual consistency and readability.
- Added a slider to adjust pcut.univariate, allowing multivariate analysis to be performed only with significant variables.
- Select first variable when vec.event and vec.time is NULL in coxph.R.
- Added an option to adjust the line thickness of the Kaplan-Meier plot.
- Added an option to the Kaplan-Meier, Cox, and ForestCox modules that allows the outcome (event) and time variables to be linked when the user specifies vec.event and vec.time. When this option is enabled, selecting an event variable automatically updates the corresponding time variable, and vice versa.
- Add options to customize x axis ticks in forest plot
- Add function to allow adjusting cutoff for a single independent variable and observing model's metrics in
rocModule,rocModule2. - Add option to turn pairwise p value option on in case level of stratified group >= 3, in
tb1moduleUI. - Add subgroup analysis for propensity score matching/repeated/survey.
- Add competing risk analysis in subgroup, Kaplan-meier, regression tab.
- Change Boxplot fill type
savfile load inFilePSInput.R,FileRepeatedInput.R,FileSurveyInput.R
- Add label option on lineplot
- Fix 2 group factor not working problem in
forestcoxServer
- Fix var_label displaying incorrectly when loading .sav file
- Download table as word document (Thanks for Jinhwan Kim)
- Apply SPSS label info (Thanks for Jinhwan Kim)
- dropdown button & p value options: barplot, boxplot and lineplot
- Add P value option to barplot, boxplot and lineplot
- Add dropdown button for graphical option to barplot, boxplot and lineplot
- Add Subgroupanalysis to jsBasicGadget
- Add figure in subgroup analysis with forestplot
- Add family 'poisson' in forestglm
- Add "line size" "point size" to lineplot
- Subgroup analysis with forestplot (Thanks for Yoonkyoung Jeon)
- forestcox (
forestcoxUI,forestcoxServer) - forestglm (
forestglmUI,forestglmServer)
- Add "reverse y-axis" option to lineplot
rocModule: Add accucary/ppv/npv with threshold
- Change default non-normal 2 group comparison test to
wilcox.test
- update deprecated icon (
Plotpanel)
feature applies in
jsBasicExtAddin(shiny app)
-
Add description with callout
Data,Table 1panel
-
modified some UI (with
style.css)- header color changed
- add zarathu & github page in header
- table 1's significant data changed
Data's table column has color (when vairable is category)
-
update DT function (
Data)Column visiblitybutton addedColumn Reorderfeature added- may browse table with keyboard (
arrowkeys)
csvfileInput.RNot use file's extension not name. (csv.txtwill nor work)ggpairs.Rapply theme with lessif-else
kaplanModulePPT download
-
rocModule -
Change
jsRepeatedGadjettojsRepeatedGadget
-
cutoff fix:
rocModule -
Add "Show 1-specificity" option
New module (Thanks for Changwoo Lim)
- Histogram(
histogramUI,histogramServer)
- Add cutoff information to
timerocModule,rocModulewhen 1 model, 1 indpendent variable.
timerocModule: Invert plot when auc < 0.5
- Fix cutoff label of Kaplan-meier plot when continuous independent variable
New module (Thanks for Hyunki Lee)
- Boxplot(
boxUI,boxServer), Lineplot(LineUI,LineServer), Barplot(BarUI,BarServer)
- Add
coxphties option tocoxModule: ties.coxph
kaplanModuleruns even if timeby = 1
- Faster
timerocModule: Change AUC/AUC difference 95%CI calculation method tosurvival::concordance
- Change emf to pptx(editable) in figure download.
- Label info in subgroup analysis: regression, cox
-
New module
scatterplotUI&scatterplotServer: scatterplot using ggpubr: apply to Basic statistics -
timerocModule,rocModule: Compare ROC curve even if there are different sample size(na omit) -
Change timeby unit from 1 to 0.5 (when <365)
-
Add surv.scale option to kaplan-meier plot
-
Fix PS matching error with missing values
-
Fix according to MatchIt 4.0 update.
-
Erratum: Cumulative hazard -> Cumulative incidence
- Show survival probabilities(%) at kaplan-meier plot. This requires jskm 0.4.2 or higher.
- Choose time ranges:
coxUI,coxModule.
- Add No initial covariate option when ps calculation
-
Add landmark analysis to kaplan-meier analysis. Pease update jskm to 0.4.0 version.
-
Add option hide 95%CI of AUC, NRIIDI to
timerocModule. It reduces computation time.
-
Apply AIC based stepwise selection to linear/logistic regression, cox model.
-
Deprecated fucntion:
regressModule&logisticModule, please useregressModule2&logisticModule2
- Add option to
tb1module1,tb1module2: get simulated p value in Fisher exact test when larger than 2 by 2 tables.
- Add dependency: Cairo package
- PS matching: Duplicated independent variables UI in ROC/timeROC analysis.
- Change minimum timeby in kaplan-meier plot: 1 to 0
- PS matching: Change font size & color of the message with missing value information.
- Cox model of Basic statistics module.
-
Incorrect p-value when applying cluster options.
-
PS matching: allow continuous variables as Independent variables
- PS matching: allow 1:N matching.
- Update: Stop running ShinyApps by closing the browser window.
-
Change reference of categorical variables
-
Add line type option to kaplan-meier plot
- Reactive error in propensity score matching.
-
Change UI: ROC/time-dependent ROC analysis.
-
Choose cut-off value in kaplan-meier analysis with continuous independent variable.
-
Add some icons.
-
Choose multiple conditions when subsetting data.
-
Add caliper option when propensity score matching.
-
Make binary variables from contiuous variables.
-
Non-normal variables can be summarized with [min,max].
-
Add line color, x-axis label option to kaplan-meier plot
- Encoding error when
csvfile upload.
-
Basic statistics with external file:
jsBasicExtAddin -
Propensity score analysis with external file:
jsPropensityExtAddin -
Repeated measure analysis with external file:
jsRepeatedExtAddin -
Survey data analysis with external file:
jsSurveyExtAddin
-
Regression/Logistic model in
jsSurveyAddin. -
Id issue in repeated measure analysis.
- Add scatterplot, ROC/time-dependent ROC analysis.
-
Error if repeated measure variable is id.
-
Error if there are missing values.
- Error in ROC analysis
data.framevsdata.tableissue.
- Bug fixes: Apply nested survey design to
jsSurveyGadgetandFileSurveyInput
-
Encoding issues when reading
sav/sas7bdat/dtaformats. -
Default independent variables when running regression/logistic/cox analysis
- Add
limit.uniresoption to regression/logistic/cox analysis to prevent computation burden.
-
Shiny module forROC analysis :
rocUIrocModule. -
Add this module to
jsBasicGadgetandjsRepeatedGadjet.
- Apply time-dependent ROC to survey data analysis(
jsSurveyGadget)
-
Change candidate time variables in survival analysis : allow only > 0
-
Add option to change legend, p-value position in kaplan-meier plot
- Time-dependent ROC analysis can allow 1 model.
- Keep original variable's name in tables/figures
- Change default step of x-axis range.
- Bug fix: time-dependent ROC analysis.
- Bug fix: emf format can recognize figure's line.
- Add emf format to the plot download modules. You can customize the plot in MS powerpoint.
- Change default time when time-dependent ROC analysis.
-
Shiny module for time-dependent ROC analysis :
timerocUItimerocModule. -
Add this module to
jsBasicGadgetandjsRepeatedGadjet.
- Add Kaplan-meier plot options: timeby, x/y-axis ranges.
-
Add progress bar to download handlers of scatterplot and kaplan-meier plot.
-
Kaplan-meier plot in
Basic statisticscan use continuous variables as group variables. The module suggest best 5 cuts based on the p-values of logrank test. -
Add number at risk table option to weighted kalan-meier plot.
- Add namespace survival::cluster for marginal cox model.
-
Add sub-group analysis based on the range of continuous variable.
-
Add multiple factor choice option when doing sub-group analysis based on categorical variable.
- Fix NOTE and examples for cran upload
- You can get Subset data based on the range of continuous variables.
- Add Subset data feature to all Addins and input modules. You can select subset data before analysis.
-
Fix
warnvariable error inregressModule,logisticModule. -
Fix list of except variables in
ggpairsModule.
- Fix some spell for cran release.
-
Update travis-ci.
-
Add appveyor CI to test window environment.
- Warning if there are stongly correlated independent variables in
regressModule,jsBasicGadget.
- Show unweighted & weighted table 1 at same tab in
jsSurveyGadget
- Initial cluster variable state in
jsSurveyGadget
- Add unweighted table 1 to
jsSurveyGadget
-
Apply list tye independent variables to
regressModule,logisticModule,GEEModuleLinearandGEEModuleLogistic -
Change sub-group analysis's reactive methods:
regressModule,logisticModule,GEEModuleLinearandGEEModuleLogistic
-
Add marginal cox model option to
coxModule,kaplanModuleandjsRepeatedGadget -
Add Overall kaplan-meier plot to
kaplanModule -
Set default cluster, strata and weights to None in
jsSurveyGadget,FileSurveyInput
-
Some error comments in
coxModuleandkaplanModule -
Change default candidate dependent variables to categorical variables with 0, 1 in
GEEModuleLogistic,jsRepeatedGadget
-
Module for Survival analysis:
coxUI,coxModule,kaplanUIandkaplanModule -
Module for ggplot download UI:
ggplotdownUI
- Add survival analysis to
jsBasicGadget,jsSurveyGadget
jsPropensityGadget
-
Bug fixes : Label information in
regressModule,logisticModule -
Update: default.unires option to
regressModule,logisticModule
- Update : Apply complex survey design to
FileSurvey,regressModule,logisticModuleandjsSurveyGadget
- Shiny Gadget for survey data analysis:
jsSurveyGadget
- Module for survey data analysis:
FileSurvey
- Survey analysis option to
regressModule,logisticModuleandtb1
- Bug fixes: sub-group option in
regressModule,logisticModule,jsPropensityGadget,GEEModuleLinearandGEEModuleLogistic
- Add testthat.
- Modules for repeated measure analysis:
FileRepeated,GEEModuleUI,GEEModuleLinearandGEEModuleLogistic
- Shiny Gadget for repeated measure analysis:
jsRepeatedGadget
- New option:
nfactor.limitinregressModule,logisticModule,jsBasicGadget,csvFileInputandFilePsInput
-
regressModule,logisticModule,jsPropensityGadgetcan deal missing data issue. -
csvFileInput,FilePSInputchange variable class integer64 to double.
- Update: Upload Stata
.dtaformat.
- Modify
tb1module,tb1module2,tb1simple,tb1simple2: compatible with updatedjstable
-
Add sub-group analysis to
regressModule,logisticModuleandjsPropensityGadget. -
Apply the updated
cox2.displayfunction in jstable package tojsPropensityGadget.
- Strata variable in
ggpairsModule,ggpairsModule2.
-
IPTW table in
tb1simpleandtb1simple2modules. -
Kaplan-meier UI in
jsPropensityGadget
tb1moduleandtb1module2can control the maximum factor levels to include.
- Bug fixes : Modules for regression exclude
NAwhen selecting binary variables.
- Update :
csvFilemodule can remove empty columns.
- Change regression table function to
glmshow.displayin jstable package.
jsPropensityGadget: Propensity score analysis
-
Excluded non-normal variable selection feature from
tb1simplemodule. -
Apply original variable names to label information :
csvFileInput&FilePsInputfunctions.
tb1simpleUI,tb1simple,tb1simple2for propensity score analysis
- factor variable criteria in
csvInput,tb1moduleandtb1module2
FilePsInput,FilePsare modules of data input for propensity score calculation.
- Change default
data.table&freadcheck.names option toTRUE
jsBasicGadget: Basic statistics
csvFilechanges variable name including/to_and etc.
- Dependency issue with jstable package
- Support
sav/sas7bdatformats
tbmoduleUI,tbmoduleUI2: some error
tbmoduleUI,tbmoduleUI2: Applyshapiro.test
-
regressModuleUI,regressModule,regressModule2 -
logisticModuleUI,logisticModule,logisticModule2 -
ggpairsModuleUI1,ggpairsModuleUI2,ggpairsModule
regress.display2,logistic.display2: Regression table for reactive data.
csvFile: Add n_ to column names that begin with a number.
tb1moduleUI2can deal reactive data
- New module:
tb1moduleUI,tb1module
- Update:
csvFilecan deal label information
- File upload:
csvFileInput,csvFile