new version

This commit is contained in:
Andreas Gammelgaard Damsbo 2026-02-23 16:17:00 +01:00
commit e55c58bc89
No known key found for this signature in database
13 changed files with 56 additions and 45 deletions

View file

@ -8,7 +8,7 @@ message: 'To cite package "FreesearchR" in publications use:'
type: software type: software
license: AGPL-3.0-or-later license: AGPL-3.0-or-later
title: 'FreesearchR: Easy data analysis for clinicians' title: 'FreesearchR: Easy data analysis for clinicians'
version: 26.2.1 version: 26.2.2
doi: 10.5281/zenodo.14527429 doi: 10.5281/zenodo.14527429
identifiers: identifiers:
- type: url - type: url

View file

@ -1,6 +1,6 @@
Package: FreesearchR Package: FreesearchR
Title: Easy data analysis for clinicians Title: Easy data analysis for clinicians
Version: 26.2.1 Version: 26.2.2
Authors@R: c( Authors@R: c(
person("Andreas Gammelgaard", "Damsbo",email="agdamsbo@clin.au.dk", role = c("aut", "cre"), person("Andreas Gammelgaard", "Damsbo",email="agdamsbo@clin.au.dk", role = c("aut", "cre"),
comment = c(ORCID = "0000-0002-7559-1154")), comment = c(ORCID = "0000-0002-7559-1154")),

View file

@ -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 # FreesearchR 26.2.1
This update is mainly focused on polishing, fixes and small additions to make the app more intuitive. This update is mainly focused on polishing, fixes and small additions to make the app more intuitive.

View file

@ -1 +1 @@
app_version <- function()'26.2.1' app_version <- function()'26.2.2'

View file

@ -1 +1 @@
hosted_version <- function()'v26.2.1-260223' hosted_version <- function()'v26.2.2-260223'

Binary file not shown.

View file

@ -15,7 +15,7 @@
|rstudio |2026.01.1+403 Apple Blossom (desktop) | |rstudio |2026.01.1+403 Apple Blossom (desktop) |
|pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) | |pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) |
|quarto |1.7.30 @ /usr/local/bin/quarto | |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) | |farver |2.1.2 |2024-05-13 |CRAN (R 4.5.0) |
|fastmap |1.2.0 |2024-05-15 |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) | |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) | |fontBitstreamVera |0.1.1 |2017-02-01 |CRAN (R 4.5.0) |
|fontLiberation |0.1.0 |2016-10-15 |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) | |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) | |foreach |1.5.2 |2022-02-02 |CRAN (R 4.5.0) |
|foreign |0.8-90 |2025-03-31 |CRAN (R 4.5.2) | |foreign |0.8-90 |2025-03-31 |CRAN (R 4.5.2) |
|Formula |1.2-5 |2023-02-24 |CRAN (R 4.5.0) | |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) | |fs |1.6.6 |2025-04-12 |CRAN (R 4.5.0) |
|gdtools |0.5.0 |2026-02-09 |CRAN (R 4.5.2) | |gdtools |0.5.0 |2026-02-09 |CRAN (R 4.5.2) |
|generics |0.1.4 |2025-05-09 |CRAN (R 4.5.0) | |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) | |KernSmooth |2.23-26 |2025-01-01 |CRAN (R 4.5.2) |
|keyring |1.4.1 |2025-06-15 |CRAN (R 4.5.0) | |keyring |1.4.1 |2025-06-15 |CRAN (R 4.5.0) |
|knitr |1.51 |2025-12-20 |CRAN (R 4.5.2) | |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) | |later |1.4.6 |2026-02-13 |CRAN (R 4.5.2) |
|lattice |0.22-7 |2025-04-02 |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) | |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) | |lme4 |1.1-38 |2025-12-02 |CRAN (R 4.5.2) |
|lubridate |1.9.5 |2026-02-04 |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) | |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) | |MASS |7.3-65 |2025-02-28 |CRAN (R 4.5.0) |
|Matrix |1.7-4 |2025-08-28 |CRAN (R 4.5.2) | |Matrix |1.7-4 |2025-08-28 |CRAN (R 4.5.2) |
|memoise |2.0.1 |2021-11-26 |CRAN (R 4.5.0) | |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) | |twosamples |2.0.1 |2023-06-23 |CRAN (R 4.5.0) |
|tzdb |0.5.0 |2025-03-15 |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) | |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) | |uuid |1.2-2 |2026-01-23 |CRAN (R 4.5.2) |
|vctrs |0.7.1 |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) | |viridis |0.6.5 |2024-01-29 |CRAN (R 4.5.0) |

View file

@ -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") 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 #### 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 #### 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"), label = i18n$t("Evaluate"),
width = "100%", width = "100%",
icon = shiny::icon("calculator"), icon = shiny::icon("calculator"),
disabled = FALSE disabled = TRUE
) )
), ),
do.call(bslib::accordion_panel, c( do.call(bslib::accordion_panel, c(
@ -6100,19 +6100,25 @@ data_missings_server <- function(id, data, max_level = 20, ...) {
) )
output$missings <- shiny::reactive({ output$missings <- shiny::reactive({
shiny::req(data()) # shiny::req(data())
any(is.na(data())) any(is.na(datar()))
}) })
shiny::outputOptions(output, "missings", suspendWhenHidden = FALSE) shiny::outputOptions(output, "missings", suspendWhenHidden = FALSE)
observe({ shiny::observeEvent(list(datar(), input$missings_method, input$missings_var),
shiny::req(data()) {
if (!any(is.na(data()))) { # shiny::req(data())
# browser()
if (!any(is.na(datar()))) {
rv$feedback <- info_alert rv$feedback <- info_alert
shiny::updateActionButton(inputId = "act_miss", disabled = TRUE)
rv$table <- NULL
output$missings_table <- gt::render_gt({ NULL })
} else { } else {
rv$feedback <- NULL rv$feedback <- NULL
shiny::updateActionButton(inputId = "act_miss", disabled = FALSE)
} }
}) },ignoreInit = TRUE)
output$feedback <- renderUI(rv$feedback) output$feedback <- renderUI(rv$feedback)
@ -6123,7 +6129,7 @@ data_missings_server <- function(id, data, max_level = 20, ...) {
## Direct table export would be nice ## Direct table export would be nice
shiny::observe(output$missings_method <- shiny::renderUI({ shiny::observe(output$missings_method <- shiny::renderUI({
shiny::req(data()) shiny::req(datar())
vectorSelectInput( vectorSelectInput(
inputId = ns("missings_method"), inputId = ns("missings_method"),
label = i18n$t("Analysis method for missingness overview"), label = i18n$t("Analysis method for missingness overview"),
@ -6143,7 +6149,7 @@ data_missings_server <- function(id, data, max_level = 20, ...) {
# browser() # browser()
if (input$missings_method == "predictors") { if (input$missings_method == "predictors") {
label <- i18n$t("Select a variable for grouped overview") 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)) col_subset <- c("none", names(df))
} else { } else {
label <- i18n$t("Select outcome variable for overview") label <- i18n$t("Select outcome variable for overview")

View file

@ -316,7 +316,6 @@
"Reorder factor levels","Omarranger niveauer" "Reorder factor levels","Omarranger niveauer"
"Modify factor levels","Modify 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." "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:" "Maximum number of observations:","Maximum number of observations:"
"setting to 0 includes all","setting to 0 includes all" "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." "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" "Click to see data","Click to see data"
"No data present.","No data present." "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." "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."

1 en da
316 Reorder factor levels Omarranger niveauer
317 Modify factor levels Modify factor levels
318 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.
319 Maximum number of observations: Maximum number of observations:
320 setting to 0 includes all setting to 0 includes all
321 Select a dataset from your environment or sample dataset from a package. Select a dataset from your environment or sample dataset from a package.
326 Click to see data Click to see data
327 No data present. No data present.
328 You have provided a complete dataset with no missing values. You have provided a complete dataset with no missing values.
329 Start by loading data. Start by loading data.

View file

@ -316,7 +316,6 @@
"Reorder factor levels","Reorder factor levels" "Reorder factor levels","Reorder factor levels"
"Modify factor levels","Modify 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." "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:" "Maximum number of observations:","Maximum number of observations:"
"setting to 0 includes all","setting to 0 includes all" "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." "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" "Click to see data","Click to see data"
"No data present.","No data present." "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." "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."

1 en sw
316 Reorder factor levels Reorder factor levels
317 Modify factor levels Modify factor levels
318 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.
319 Maximum number of observations: Maximum number of observations:
320 setting to 0 includes all setting to 0 includes all
321 Select a dataset from your environment or sample dataset from a package. Select a dataset from your environment or sample dataset from a package.
326 Click to see data Click to see data
327 No data present. No data present.
328 You have provided a complete dataset with no missing values. You have provided a complete dataset with no missing values.
329 Start by loading data. Start by loading data.

View file

@ -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") i18n_path <- system.file("translations", package = "FreesearchR")
@ -6050,7 +6050,7 @@ data_missings_ui <- function(id, ...) {
label = i18n$t("Evaluate"), label = i18n$t("Evaluate"),
width = "100%", width = "100%",
icon = shiny::icon("calculator"), icon = shiny::icon("calculator"),
disabled = FALSE disabled = TRUE
) )
), ),
do.call(bslib::accordion_panel, c( do.call(bslib::accordion_panel, c(
@ -6100,19 +6100,25 @@ data_missings_server <- function(id, data, max_level = 20, ...) {
) )
output$missings <- shiny::reactive({ output$missings <- shiny::reactive({
shiny::req(data()) # shiny::req(data())
any(is.na(data())) any(is.na(datar()))
}) })
shiny::outputOptions(output, "missings", suspendWhenHidden = FALSE) shiny::outputOptions(output, "missings", suspendWhenHidden = FALSE)
observe({ shiny::observeEvent(list(datar(), input$missings_method, input$missings_var),
shiny::req(data()) {
if (!any(is.na(data()))) { # shiny::req(data())
# browser()
if (!any(is.na(datar()))) {
rv$feedback <- info_alert rv$feedback <- info_alert
shiny::updateActionButton(inputId = "act_miss", disabled = TRUE)
rv$table <- NULL
output$missings_table <- gt::render_gt({ NULL })
} else { } else {
rv$feedback <- NULL rv$feedback <- NULL
shiny::updateActionButton(inputId = "act_miss", disabled = FALSE)
} }
}) },ignoreInit = TRUE)
output$feedback <- renderUI(rv$feedback) output$feedback <- renderUI(rv$feedback)
@ -6123,7 +6129,7 @@ data_missings_server <- function(id, data, max_level = 20, ...) {
## Direct table export would be nice ## Direct table export would be nice
shiny::observe(output$missings_method <- shiny::renderUI({ shiny::observe(output$missings_method <- shiny::renderUI({
shiny::req(data()) shiny::req(datar())
vectorSelectInput( vectorSelectInput(
inputId = ns("missings_method"), inputId = ns("missings_method"),
label = i18n$t("Analysis method for missingness overview"), label = i18n$t("Analysis method for missingness overview"),
@ -6143,7 +6149,7 @@ data_missings_server <- function(id, data, max_level = 20, ...) {
# browser() # browser()
if (input$missings_method == "predictors") { if (input$missings_method == "predictors") {
label <- i18n$t("Select a variable for grouped overview") 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)) col_subset <- c("none", names(df))
} else { } else {
label <- i18n$t("Select outcome variable for overview") label <- i18n$t("Select outcome variable for overview")

View file

@ -316,7 +316,6 @@
"Reorder factor levels","Omarranger niveauer" "Reorder factor levels","Omarranger niveauer"
"Modify factor levels","Modify 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." "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:" "Maximum number of observations:","Maximum number of observations:"
"setting to 0 includes all","setting to 0 includes all" "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." "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" "Click to see data","Click to see data"
"No data present.","No data present." "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." "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."

1 en da
316 Reorder factor levels Omarranger niveauer
317 Modify factor levels Modify factor levels
318 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.
319 Maximum number of observations: Maximum number of observations:
320 setting to 0 includes all setting to 0 includes all
321 Select a dataset from your environment or sample dataset from a package. Select a dataset from your environment or sample dataset from a package.
326 Click to see data Click to see data
327 No data present. No data present.
328 You have provided a complete dataset with no missing values. You have provided a complete dataset with no missing values.
329 Start by loading data. Start by loading data.

View file

@ -316,7 +316,6 @@
"Reorder factor levels","Reorder factor levels" "Reorder factor levels","Reorder factor levels"
"Modify factor levels","Modify 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." "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:" "Maximum number of observations:","Maximum number of observations:"
"setting to 0 includes all","setting to 0 includes all" "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." "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" "Click to see data","Click to see data"
"No data present.","No data present." "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." "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."

1 en sw
316 Reorder factor levels Reorder factor levels
317 Modify factor levels Modify factor levels
318 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.
319 Maximum number of observations: Maximum number of observations:
320 setting to 0 includes all setting to 0 includes all
321 Select a dataset from your environment or sample dataset from a package. Select a dataset from your environment or sample dataset from a package.
326 Click to see data Click to see data
327 No data present. No data present.
328 You have provided a complete dataset with no missing values. You have provided a complete dataset with no missing values.
329 Start by loading data. Start by loading data.