diff --git a/CITATION.cff b/CITATION.cff index c72df497..9c27438d 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,7 +8,7 @@ message: 'To cite package "FreesearchR" in publications use:' type: software license: AGPL-3.0-or-later title: 'FreesearchR: Easy data analysis for clinicians' -version: 26.2.1 +version: 26.2.2 doi: 10.5281/zenodo.14527429 identifiers: - type: url diff --git a/DESCRIPTION b/DESCRIPTION index 0b5a2624..765ddf30 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: FreesearchR Title: Easy data analysis for clinicians -Version: 26.2.1 +Version: 26.2.2 Authors@R: c( person("Andreas Gammelgaard", "Damsbo",email="agdamsbo@clin.au.dk", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7559-1154")), diff --git a/NEWS.md b/NEWS.md index 72b3f5da..a4ae118e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +# FreesearchR 26.2.2 + +Minor addition to the previous update with correct activation of the missingness evaluation button. + # FreesearchR 26.2.1 This update is mainly focused on polishing, fixes and small additions to make the app more intuitive. diff --git a/R/app_version.R b/R/app_version.R index 2e7eceea..2e388696 100644 --- a/R/app_version.R +++ b/R/app_version.R @@ -1 +1 @@ -app_version <- function()'26.2.1' +app_version <- function()'26.2.2' diff --git a/R/hosted_version.R b/R/hosted_version.R index b7608560..ac3e35b9 100644 --- a/R/hosted_version.R +++ b/R/hosted_version.R @@ -1 +1 @@ -hosted_version <- function()'v26.2.1-260223' +hosted_version <- function()'v26.2.2-260223' diff --git a/R/sysdata.rda b/R/sysdata.rda index b44fdc1d..0dbda132 100644 Binary files a/R/sysdata.rda and b/R/sysdata.rda differ diff --git a/SESSION.md b/SESSION.md index 8030232c..7907a089 100644 --- a/SESSION.md +++ b/SESSION.md @@ -15,7 +15,7 @@ |rstudio |2026.01.1+403 Apple Blossom (desktop) | |pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) | |quarto |1.7.30 @ /usr/local/bin/quarto | -|FreesearchR |26.2.1.260223 | +|FreesearchR |26.2.2.260223 | -------------------------------------------------------------------------------- @@ -78,7 +78,6 @@ |farver |2.1.2 |2024-05-13 |CRAN (R 4.5.0) | |fastmap |1.2.0 |2024-05-15 |CRAN (R 4.5.0) | |flextable |0.9.11 |2026-02-13 |CRAN (R 4.5.2) | -|fontawesome |0.5.3 |2024-11-16 |CRAN (R 4.5.0) | |fontBitstreamVera |0.1.1 |2017-02-01 |CRAN (R 4.5.0) | |fontLiberation |0.1.0 |2016-10-15 |CRAN (R 4.5.0) | |fontquiver |0.2.1 |2017-02-01 |CRAN (R 4.5.0) | @@ -86,7 +85,7 @@ |foreach |1.5.2 |2022-02-02 |CRAN (R 4.5.0) | |foreign |0.8-90 |2025-03-31 |CRAN (R 4.5.2) | |Formula |1.2-5 |2023-02-24 |CRAN (R 4.5.0) | -|FreesearchR |26.2.1 |NA |NA | +|FreesearchR |26.2.2 |NA |NA | |fs |1.6.6 |2025-04-12 |CRAN (R 4.5.0) | |gdtools |0.5.0 |2026-02-09 |CRAN (R 4.5.2) | |generics |0.1.4 |2025-05-09 |CRAN (R 4.5.0) | @@ -117,15 +116,12 @@ |KernSmooth |2.23-26 |2025-01-01 |CRAN (R 4.5.2) | |keyring |1.4.1 |2025-06-15 |CRAN (R 4.5.0) | |knitr |1.51 |2025-12-20 |CRAN (R 4.5.2) | -|labeling |0.4.3 |2023-08-29 |CRAN (R 4.5.0) | |later |1.4.6 |2026-02-13 |CRAN (R 4.5.2) | |lattice |0.22-7 |2025-04-02 |CRAN (R 4.5.2) | |lifecycle |1.0.5 |2026-01-08 |CRAN (R 4.5.2) | -|litedown |0.9 |2025-12-18 |CRAN (R 4.5.2) | |lme4 |1.1-38 |2025-12-02 |CRAN (R 4.5.2) | |lubridate |1.9.5 |2026-02-04 |CRAN (R 4.5.2) | |magrittr |2.0.4 |2025-09-12 |CRAN (R 4.5.0) | -|markdown |2.0 |2025-03-23 |CRAN (R 4.5.0) | |MASS |7.3-65 |2025-02-28 |CRAN (R 4.5.0) | |Matrix |1.7-4 |2025-08-28 |CRAN (R 4.5.2) | |memoise |2.0.1 |2021-11-26 |CRAN (R 4.5.0) | @@ -219,7 +215,6 @@ |twosamples |2.0.1 |2023-06-23 |CRAN (R 4.5.0) | |tzdb |0.5.0 |2025-03-15 |CRAN (R 4.5.0) | |usethis |3.2.1 |2025-09-06 |CRAN (R 4.5.0) | -|utf8 |1.2.6 |2025-06-08 |CRAN (R 4.5.0) | |uuid |1.2-2 |2026-01-23 |CRAN (R 4.5.2) | |vctrs |0.7.1 |2026-01-23 |CRAN (R 4.5.2) | |viridis |0.6.5 |2024-01-29 |CRAN (R 4.5.0) | diff --git a/app_docker/app.R b/app_docker/app.R index 9c757757..8834ee28 100644 --- a/app_docker/app.R +++ b/app_docker/app.R @@ -1,7 +1,7 @@ ######## -#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpvRkTPP/file5ce31553c48a.R +#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//Rtmpp0JgLn/file73e1594116cf.R ######## i18n_path <- here::here("translations") @@ -72,7 +72,7 @@ if (!"global_freesearchR" %in% ls(name = globalenv())) { #### Current file: /Users/au301842/FreesearchR/R//app_version.R ######## -app_version <- function()'26.2.1' +app_version <- function()'26.2.2' ######## @@ -4524,7 +4524,7 @@ data_types <- function() { #### Current file: /Users/au301842/FreesearchR/R//hosted_version.R ######## -hosted_version <- function()'v26.2.1-260223' +hosted_version <- function()'v26.2.2-260223' ######## @@ -6050,7 +6050,7 @@ data_missings_ui <- function(id, ...) { label = i18n$t("Evaluate"), width = "100%", icon = shiny::icon("calculator"), - disabled = FALSE + disabled = TRUE ) ), do.call(bslib::accordion_panel, c( @@ -6100,19 +6100,25 @@ data_missings_server <- function(id, data, max_level = 20, ...) { ) output$missings <- shiny::reactive({ - shiny::req(data()) - any(is.na(data())) + # shiny::req(data()) + any(is.na(datar())) }) shiny::outputOptions(output, "missings", suspendWhenHidden = FALSE) - observe({ - shiny::req(data()) - if (!any(is.na(data()))) { - rv$feedback <- info_alert - } else { - rv$feedback <- NULL - } - }) + shiny::observeEvent(list(datar(), input$missings_method, input$missings_var), + { + # shiny::req(data()) + # browser() + if (!any(is.na(datar()))) { + rv$feedback <- info_alert + shiny::updateActionButton(inputId = "act_miss", disabled = TRUE) + rv$table <- NULL + output$missings_table <- gt::render_gt({ NULL }) + } else { + rv$feedback <- NULL + shiny::updateActionButton(inputId = "act_miss", disabled = FALSE) + } + },ignoreInit = TRUE) output$feedback <- renderUI(rv$feedback) @@ -6123,7 +6129,7 @@ data_missings_server <- function(id, data, max_level = 20, ...) { ## Direct table export would be nice shiny::observe(output$missings_method <- shiny::renderUI({ - shiny::req(data()) + shiny::req(datar()) vectorSelectInput( inputId = ns("missings_method"), label = i18n$t("Analysis method for missingness overview"), @@ -6143,7 +6149,7 @@ data_missings_server <- function(id, data, max_level = 20, ...) { # browser() if (input$missings_method == "predictors") { label <- i18n$t("Select a variable for grouped overview") - df <- data_type_filter(data(), type = c("categorical", "dichotomous")) + df <- data_type_filter(datar(), type = c("categorical", "dichotomous")) col_subset <- c("none", names(df)) } else { label <- i18n$t("Select outcome variable for overview") diff --git a/app_docker/translations/translation_da.csv b/app_docker/translations/translation_da.csv index 1f01e80c..cf5fc05c 100644 --- a/app_docker/translations/translation_da.csv +++ b/app_docker/translations/translation_da.csv @@ -316,7 +316,6 @@ "Reorder factor levels","Omarranger niveauer" "Modify factor levels","Modify factor levels" "Reorder or rename the levels of factor/categorical variables.","Reorder or rename the levels of factor/categorical variables." -"Start by loading data.","Start by loading data." "Maximum number of observations:","Maximum number of observations:" "setting to 0 includes all","setting to 0 includes all" "Select a dataset from your environment or sample dataset from a package.","Select a dataset from your environment or sample dataset from a package." @@ -327,3 +326,4 @@ "Click to see data","Click to see data" "No data present.","No data present." "You have provided a complete dataset with no missing values.","You have provided a complete dataset with no missing values." +"Start by loading data.","Start by loading data." diff --git a/app_docker/translations/translation_sw.csv b/app_docker/translations/translation_sw.csv index 03796bcc..f17394c2 100644 --- a/app_docker/translations/translation_sw.csv +++ b/app_docker/translations/translation_sw.csv @@ -316,7 +316,6 @@ "Reorder factor levels","Reorder factor levels" "Modify factor levels","Modify factor levels" "Reorder or rename the levels of factor/categorical variables.","Reorder or rename the levels of factor/categorical variables." -"Start by loading data.","Start by loading data." "Maximum number of observations:","Maximum number of observations:" "setting to 0 includes all","setting to 0 includes all" "Select a dataset from your environment or sample dataset from a package.","Select a dataset from your environment or sample dataset from a package." @@ -327,3 +326,4 @@ "Click to see data","Click to see data" "No data present.","No data present." "You have provided a complete dataset with no missing values.","You have provided a complete dataset with no missing values." +"Start by loading data.","Start by loading data." diff --git a/inst/apps/FreesearchR/app.R b/inst/apps/FreesearchR/app.R index 669d66d6..45097747 100644 --- a/inst/apps/FreesearchR/app.R +++ b/inst/apps/FreesearchR/app.R @@ -1,7 +1,7 @@ ######## -#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpvRkTPP/file5ce319d75524.R +#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//Rtmpp0JgLn/file73e1e257b26.R ######## i18n_path <- system.file("translations", package = "FreesearchR") @@ -6050,7 +6050,7 @@ data_missings_ui <- function(id, ...) { label = i18n$t("Evaluate"), width = "100%", icon = shiny::icon("calculator"), - disabled = FALSE + disabled = TRUE ) ), do.call(bslib::accordion_panel, c( @@ -6100,19 +6100,25 @@ data_missings_server <- function(id, data, max_level = 20, ...) { ) output$missings <- shiny::reactive({ - shiny::req(data()) - any(is.na(data())) + # shiny::req(data()) + any(is.na(datar())) }) shiny::outputOptions(output, "missings", suspendWhenHidden = FALSE) - observe({ - shiny::req(data()) - if (!any(is.na(data()))) { - rv$feedback <- info_alert - } else { - rv$feedback <- NULL - } - }) + shiny::observeEvent(list(datar(), input$missings_method, input$missings_var), + { + # shiny::req(data()) + # browser() + if (!any(is.na(datar()))) { + rv$feedback <- info_alert + shiny::updateActionButton(inputId = "act_miss", disabled = TRUE) + rv$table <- NULL + output$missings_table <- gt::render_gt({ NULL }) + } else { + rv$feedback <- NULL + shiny::updateActionButton(inputId = "act_miss", disabled = FALSE) + } + },ignoreInit = TRUE) output$feedback <- renderUI(rv$feedback) @@ -6123,7 +6129,7 @@ data_missings_server <- function(id, data, max_level = 20, ...) { ## Direct table export would be nice shiny::observe(output$missings_method <- shiny::renderUI({ - shiny::req(data()) + shiny::req(datar()) vectorSelectInput( inputId = ns("missings_method"), label = i18n$t("Analysis method for missingness overview"), @@ -6143,7 +6149,7 @@ data_missings_server <- function(id, data, max_level = 20, ...) { # browser() if (input$missings_method == "predictors") { label <- i18n$t("Select a variable for grouped overview") - df <- data_type_filter(data(), type = c("categorical", "dichotomous")) + df <- data_type_filter(datar(), type = c("categorical", "dichotomous")) col_subset <- c("none", names(df)) } else { label <- i18n$t("Select outcome variable for overview") diff --git a/inst/translations/translation_da.csv b/inst/translations/translation_da.csv index 1f01e80c..cf5fc05c 100644 --- a/inst/translations/translation_da.csv +++ b/inst/translations/translation_da.csv @@ -316,7 +316,6 @@ "Reorder factor levels","Omarranger niveauer" "Modify factor levels","Modify factor levels" "Reorder or rename the levels of factor/categorical variables.","Reorder or rename the levels of factor/categorical variables." -"Start by loading data.","Start by loading data." "Maximum number of observations:","Maximum number of observations:" "setting to 0 includes all","setting to 0 includes all" "Select a dataset from your environment or sample dataset from a package.","Select a dataset from your environment or sample dataset from a package." @@ -327,3 +326,4 @@ "Click to see data","Click to see data" "No data present.","No data present." "You have provided a complete dataset with no missing values.","You have provided a complete dataset with no missing values." +"Start by loading data.","Start by loading data." diff --git a/inst/translations/translation_sw.csv b/inst/translations/translation_sw.csv index 03796bcc..f17394c2 100644 --- a/inst/translations/translation_sw.csv +++ b/inst/translations/translation_sw.csv @@ -316,7 +316,6 @@ "Reorder factor levels","Reorder factor levels" "Modify factor levels","Modify factor levels" "Reorder or rename the levels of factor/categorical variables.","Reorder or rename the levels of factor/categorical variables." -"Start by loading data.","Start by loading data." "Maximum number of observations:","Maximum number of observations:" "setting to 0 includes all","setting to 0 includes all" "Select a dataset from your environment or sample dataset from a package.","Select a dataset from your environment or sample dataset from a package." @@ -327,3 +326,4 @@ "Click to see data","Click to see data" "No data present.","No data present." "You have provided a complete dataset with no missing values.","You have provided a complete dataset with no missing values." +"Start by loading data.","Start by loading data."