diff --git a/CITATION.cff b/CITATION.cff index 2903935..419ad2b 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -9,7 +9,7 @@ type: software license: AGPL-3.0-or-later title: 'FreesearchR: A free and open-source browser based data analysis tool for researchers with publication ready output' -version: 25.6.1 +version: 25.6.2 doi: 10.5281/zenodo.14527429 identifiers: - type: url diff --git a/DESCRIPTION b/DESCRIPTION index 5c9b248..cebd548 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: FreesearchR Title: A free and open-source browser based data analysis tool for researchers with publication ready output -Version: 25.6.1 +Version: 25.6.3 Authors@R: c( person("Andreas Gammelgaard", "Damsbo",email="agdamsbo@clin.au.dk", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7559-1154")), @@ -64,7 +64,8 @@ Imports: RcppArmadillo, ggcorrplot, shinyjs, - emmeans + emmeans, + visdat Suggests: styler, devtools, diff --git a/NAMESPACE b/NAMESPACE index 8e8a7a2..5419ce5 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -30,6 +30,8 @@ export(cut_variable_ui) export(data_correlations_server) export(data_correlations_ui) export(data_description) +export(data_missings_server) +export(data_missings_ui) export(data_summary_server) export(data_summary_ui) export(data_type) diff --git a/NEWS.md b/NEWS.md index 05d0347..2b9c152 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,17 @@ +# FreesearchR 25.6.3 + +- *NEW* First go at introducing more options to evaluate missings. Also reworded the text on the initial filter to only include variables missings less than the given threshold. + +# FreesearchR 25.6.2 + +- *FIX* Added warning about only using REDCap with sensitive data running locally. THis applies to all data actually. Considering taking REDCap out in hosted version. Standalone app is in the works. + +- *FIX* Reworded the completeness filter to be on missingness, as this is a more commonly used concept. + +- *FIX* Improved layout around data filters to improve usage. + +- *FIX* Regression table in report respects inclusion of p-values or not. + # FreesearchR 25.6.1 - *FIX* big not allowing to browse data diff --git a/R/app_version.R b/R/app_version.R index e81f97f..440e842 100644 --- a/R/app_version.R +++ b/R/app_version.R @@ -1 +1 @@ -app_version <- function()'25.6.1' +app_version <- function()'25.6.3' diff --git a/R/helpers.R b/R/helpers.R index 7312919..cb2a1aa 100644 --- a/R/helpers.R +++ b/R/helpers.R @@ -50,7 +50,7 @@ write_quarto <- function(data, ...) { ) } -write_rmd <- function(data, ...) { +write_rmd <- function(data, ..., params.args=NULL) { # Exports data to temporary location # # I assume this is more secure than putting it in the www folder and deleting @@ -65,7 +65,7 @@ write_rmd <- function(data, ...) { ## Ref: https://github.com/quarto-dev/quarto-cli/discussions/4041 ## Outputs to the same as the .qmd file rmarkdown::render( - params = list(data.file = "web_data.rds",version=app_version()), + params = modifyList(list(data.file = "web_data.rds",version=app_version()),params.args), # execute_params = list(data.file = temp), ... ) diff --git a/R/hosted_version.R b/R/hosted_version.R index 095d1d4..6d5e327 100644 --- a/R/hosted_version.R +++ b/R/hosted_version.R @@ -1 +1 @@ -hosted_version <- function()'v25.6.1-250604' +hosted_version <- function()'v25.6.3-250620' diff --git a/R/missings-module.R b/R/missings-module.R index fd7e7e7..451d4ab 100644 --- a/R/missings-module.R +++ b/R/missings-module.R @@ -89,6 +89,7 @@ modal_data_missings <- function(data, tags$div( shiny::renderPlot({ visdat::vis_dat(datar())+ + ggplot2::guides(fill = ggplot2::guide_legend(title = "Data class")) + # ggplot2::theme_void() + ggplot2::theme( # legend.position = "none", diff --git a/R/sysdata.rda b/R/sysdata.rda index 66754e3..e1714c3 100644 Binary files a/R/sysdata.rda and b/R/sysdata.rda differ diff --git a/SESSION.md b/SESSION.md index eeee39b..d7a6af1 100644 --- a/SESSION.md +++ b/SESSION.md @@ -11,11 +11,11 @@ |collate |en_US.UTF-8 | |ctype |en_US.UTF-8 | |tz |Europe/Copenhagen | -|date |2025-06-04 | +|date |2025-06-06 | |rstudio |2025.05.0+496 Mariposa Orchid (desktop) | |pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) | |quarto |1.7.30 @ /usr/local/bin/quarto | -|FreesearchR |25.6.1.250604 | +|FreesearchR |25.6.2.250606 | -------------------------------------------------------------------------------- @@ -76,7 +76,6 @@ |farver |2.1.2 |2024-05-13 |CRAN (R 4.4.1) | |fastmap |1.2.0 |2024-05-15 |CRAN (R 4.4.1) | |flextable |0.9.7 |2024-10-27 |CRAN (R 4.4.1) | -|fontawesome |0.5.3 |2024-11-16 |CRAN (R 4.4.1) | |fontBitstreamVera |0.1.1 |2017-02-01 |CRAN (R 4.4.1) | |fontLiberation |0.1.0 |2016-10-15 |CRAN (R 4.4.1) | |fontquiver |0.2.1 |2017-02-01 |CRAN (R 4.4.0) | @@ -84,7 +83,7 @@ |foreach |1.5.2 |2022-02-02 |CRAN (R 4.4.0) | |foreign |0.8-90 |2025-03-31 |CRAN (R 4.4.1) | |Formula |1.2-5 |2023-02-24 |CRAN (R 4.4.1) | -|FreesearchR |25.6.1 |NA |NA | +|FreesearchR |25.6.2 |NA |NA | |fs |1.6.6 |2025-04-12 |CRAN (R 4.4.1) | |gdtools |0.4.2 |2025-03-27 |CRAN (R 4.4.1) | |generics |0.1.3 |2022-07-05 |CRAN (R 4.4.1) | @@ -160,6 +159,7 @@ |R6 |2.6.1 |2025-02-15 |CRAN (R 4.4.1) | |ragg |1.4.0 |2025-04-10 |CRAN (R 4.4.1) | |rankinPlot |1.1.0 |2023-01-30 |CRAN (R 4.4.0) | +|rappdirs |0.3.3 |2021-01-31 |CRAN (R 4.4.1) | |rbibutils |2.3 |2024-10-04 |CRAN (R 4.4.1) | |RColorBrewer |1.1-3 |2022-04-03 |CRAN (R 4.4.1) | |Rcpp |1.0.14 |2025-01-12 |CRAN (R 4.4.1) | diff --git a/inst/apps/FreesearchR/app.R b/inst/apps/FreesearchR/app.R index 59b3277..51b3050 100644 --- a/inst/apps/FreesearchR/app.R +++ b/inst/apps/FreesearchR/app.R @@ -4750,6 +4750,7 @@ modal_data_missings <- function(data, tags$div( shiny::renderPlot({ visdat::vis_dat(datar())+ + ggplot2::guides(fill = ggplot2::guide_legend(title = "Data class")) + # ggplot2::theme_void() + ggplot2::theme( # legend.position = "none", @@ -10549,7 +10550,8 @@ server <- function(input, output, session) { observeEvent(input$modal_missings, { tryCatch( { - modal_data_missings(data = REDCapCAST::fct_drop(rv$data_filtered)) + modal_data_missings(data = REDCapCAST::fct_drop(rv$data_filtered), + footer = "This pop-up gives you an overview of how your data is interpreted, and where data is missing. Use this information to consider if data is missing at random or if some observations are missing systematically wich may be caused by an observation bias.") }, error = function(err) { showNotification(paste0("We encountered the following error showing missingness: ", err), type = "err") diff --git a/inst/apps/FreesearchR/www/report.rmd b/inst/apps/FreesearchR/www/report.rmd index 7f7c61f..fcc6d4d 100644 --- a/inst/apps/FreesearchR/www/report.rmd +++ b/inst/apps/FreesearchR/www/report.rmd @@ -7,6 +7,7 @@ toc: false params: data.file: NA version: NA + regression.p: NA --- ```{r setup, echo = FALSE} @@ -65,7 +66,15 @@ if ("table1" %in% names(web_data)) { ```{r, results = 'asis'} if ("regression" %in% names(web_data) && length(web_data$regression) > 0) { reg_tbl <- web_data$regression$regression$tables - knitr::knit_print(tbl_merge(reg_tbl)) + + merged <- tbl_merge(reg_tbl) + + if (params$regression.p == "no") { + merged <- merged |> + gtsummary::modify_column_hide(column = dplyr::starts_with("p.value")) + } + + knitr::knit_print(merged) } ``` diff --git a/inst/apps/FreesearchR/www/umami-app.html b/inst/apps/FreesearchR/www/umami-app.html new file mode 100644 index 0000000..f4e9a52 --- /dev/null +++ b/inst/apps/FreesearchR/www/umami-app.html @@ -0,0 +1 @@ + diff --git a/inst/apps/FreesearchR/www/web_data.rds b/inst/apps/FreesearchR/www/web_data.rds index bddd558..a3256d4 100644 Binary files a/inst/apps/FreesearchR/www/web_data.rds and b/inst/apps/FreesearchR/www/web_data.rds differ