diff --git a/CITATION.cff b/CITATION.cff index d03d028a..64a2bfc9 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: 25.9.2 +version: 25.9.3 doi: 10.5281/zenodo.14527429 identifiers: - type: url diff --git a/DESCRIPTION b/DESCRIPTION index 011b5ffa..9ace2c09 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: FreesearchR Title: Easy data analysis for clinicians -Version: 25.9.2 +Version: 25.9.3 Authors@R: c( person("Andreas Gammelgaard", "Damsbo",email="agdamsbo@clin.au.dk", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7559-1154")), @@ -67,7 +67,8 @@ Imports: emmeans, readxl, NHANES, - shiny.i18n + shiny.i18n, + stRoke Suggests: styler, devtools, @@ -91,3 +92,44 @@ Config/testthat/edition: 3 Depends: R (>= 3.5) LazyData: true +Collate: + 'app_version.R' + 'baseline_table.R' + 'contrast_text.R' + 'correlations-module.R' + 'create-column-mod.R' + 'custom_SelectInput.R' + 'cut-variable-dates.R' + 'data-summary.R' + 'data_plots.R' + 'datagrid-infos-mod.R' + 'helpers.R' + 'hosted_version.R' + 'html_dependency_freesearchr.R' + 'import-file-ext.R' + 'import_globalenv-ext.R' + 'launch_FreesearchR.R' + 'missings-module.R' + 'plot-download-module.R' + 'plot_box.R' + 'plot_euler.R' + 'plot_hbar.R' + 'plot_ridge.R' + 'plot_sankey.R' + 'plot_scatter.R' + 'plot_violin.R' + 'redcap_read_shiny_module.R' + 'regression-module.R' + 'regression_model.R' + 'regression_plot.R' + 'regression_table.R' + 'report.R' + 'syntax_highlight.R' + 'theme.R' + 'translate.R' + 'ui_elements.R' + 'update-factor-ext.R' + 'update-variables-ext.R' + 'validation.R' + 'visual_summary.R' + 'wide2long.R' diff --git a/NAMESPACE b/NAMESPACE index a1f0b9d0..03405295 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -51,6 +51,7 @@ export(expression_string) export(factorize) export(file_export) export(format_writer) +export(get_data_packages) export(get_fun_options) export(get_label) export(get_plot_options) @@ -64,6 +65,8 @@ export(import_delim) export(import_dta) export(import_file_server) export(import_file_ui) +export(import_globalenv_server) +export(import_globalenv_ui) export(import_ods) export(import_rds) export(import_xls) @@ -78,6 +81,7 @@ export(launch_FreesearchR) export(limit_log) export(line_break) export(list_allowed_operations) +export(list_pkg_data) export(m_redcap_readServer) export(m_redcap_readUI) export(make_validation) @@ -170,12 +174,14 @@ importFrom(rlang,sym) importFrom(rlang,syms) importFrom(shiny,NS) importFrom(shiny,actionButton) +importFrom(shiny,actionLink) importFrom(shiny,bindEvent) importFrom(shiny,checkboxInput) importFrom(shiny,column) importFrom(shiny,fluidRow) importFrom(shiny,getDefaultReactiveDomain) importFrom(shiny,icon) +importFrom(shiny,is.reactive) importFrom(shiny,isTruthy) importFrom(shiny,modalDialog) importFrom(shiny,moduleServer) @@ -184,6 +190,7 @@ importFrom(shiny,observeEvent) importFrom(shiny,plotOutput) importFrom(shiny,reactive) importFrom(shiny,reactiveValues) +importFrom(shiny,removeUI) importFrom(shiny,renderPlot) importFrom(shiny,req) importFrom(shiny,restoreInput) @@ -196,6 +203,7 @@ importFrom(shiny,updateActionButton) importFrom(shinyWidgets,WinBox) importFrom(shinyWidgets,noUiSliderInput) importFrom(shinyWidgets,prettyCheckbox) +importFrom(shinyWidgets,updatePickerInput) importFrom(shinyWidgets,updateVirtualSelect) importFrom(shinyWidgets,virtualSelectInput) importFrom(shinyWidgets,wbControls) @@ -208,4 +216,5 @@ importFrom(toastui,grid_colorbar) importFrom(toastui,grid_columns) importFrom(toastui,renderDatagrid) importFrom(toastui,renderDatagrid2) +importFrom(utils,data) importFrom(utils,type.convert) diff --git a/NEWS.md b/NEWS.md index 386366bf..22a08ac2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,9 @@ +# FreesearchR 25.9.3 -DEV + +*NEW* Improvements to translations with more strings having been translated. + +*NEW* Sample data has been filtered to only include a few select packages (NHANES and stRoke). + # FreesearchR 25.9.2 *NEW* Improvements to translations with more strings having been translated. diff --git a/R/app_version.R b/R/app_version.R index 990115ff..4955a874 100644 --- a/R/app_version.R +++ b/R/app_version.R @@ -1 +1 @@ -app_version <- function()'25.9.2' +app_version <- function()'25.9.3' diff --git a/R/hosted_version.R b/R/hosted_version.R index 8c66342a..a6094623 100644 --- a/R/hosted_version.R +++ b/R/hosted_version.R @@ -1 +1 @@ -hosted_version <- function()'v25.9.2-250925' +hosted_version <- function()'v25.9.3-251002' diff --git a/R/html_dependency_freesearchr.R b/R/html_dependency_freesearchr.R index bf46e471..bb1af879 100644 --- a/R/html_dependency_freesearchr.R +++ b/R/html_dependency_freesearchr.R @@ -4,6 +4,7 @@ html_dependency_FreesearchR <- function() { version = packageVersion("FreesearchR"), src = list(href = "FreesearchR", file = "assets"), package = "FreesearchR", + script = "js/FreesearchR.js", stylesheet = "css/FreesearchR.css" ) } diff --git a/R/ui_elements.R b/R/ui_elements.R index 8465ec5e..4a5d5f3a 100644 --- a/R/ui_elements.R +++ b/R/ui_elements.R @@ -60,7 +60,7 @@ ui_elements <- function(selection) { # ), shiny::selectInput( inputId = "source", - label="", + label = "", selected = "file", choices = "file", width = "100%" @@ -96,7 +96,11 @@ ui_elements <- function(selection) { ), shiny::conditionalPanel( condition = "input.source=='env'", - import_globalenv_ui(id = "env", title = NULL) + import_globalenv_ui( + id = "env", + title = NULL, + packages = c("NHANES", "stRoke") + ) ), # shiny::conditionalPanel( # condition = "input.source=='redcap'", @@ -350,7 +354,7 @@ ui_elements <- function(selection) { sidebar = bslib::sidebar( shiny::uiOutput(outputId = "data_info_nochar", inline = TRUE), bslib::accordion( - id="acc_chars", + id = "acc_chars", open = "acc_chars", multiple = FALSE, bslib::accordion_panel( @@ -396,7 +400,7 @@ ui_elements <- function(selection) { sidebar = bslib::sidebar( # shiny::uiOutput(outputId = "data_info_nochar", inline = TRUE), bslib::accordion( - id="acc_cor", + id = "acc_cor", open = "acc_chars", multiple = FALSE, bslib::accordion_panel( diff --git a/SESSION.md b/SESSION.md index 3e7afd1e..803577dd 100644 --- a/SESSION.md +++ b/SESSION.md @@ -15,7 +15,7 @@ |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.9.2.250925 | +|FreesearchR |25.9.3.250925 | -------------------------------------------------------------------------------- @@ -45,6 +45,7 @@ |cardx |0.2.5 |2025-07-03 |CRAN (R 4.4.1) | |caTools |1.18.3 |2024-09-04 |CRAN (R 4.4.1) | |cellranger |1.1.0 |2016-07-27 |CRAN (R 4.4.0) | +|cffr |1.2.0 |2025-01-25 |CRAN (R 4.4.1) | |checkmate |2.3.2 |2024-07-29 |CRAN (R 4.4.0) | |class |7.3-23 |2025-01-01 |CRAN (R 4.4.1) | |classInt |0.4-11 |2025-01-08 |CRAN (R 4.4.1) | @@ -54,6 +55,8 @@ |colorspace |2.1-1 |2024-07-26 |CRAN (R 4.4.1) | |commonmark |2.0.0 |2025-07-07 |CRAN (R 4.4.1) | |crayon |1.5.3 |2024-06-20 |CRAN (R 4.4.1) | +|credentials |2.0.2 |2024-10-04 |CRAN (R 4.4.1) | +|curl |6.4.0 |2025-06-22 |CRAN (R 4.4.1) | |data.table |1.17.8 |2025-07-10 |CRAN (R 4.4.1) | |datamods |1.5.3 |2024-10-02 |CRAN (R 4.4.1) | |datawizard |1.2.0 |2025-07-17 |CRAN (R 4.4.1) | @@ -85,16 +88,19 @@ |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.9.2 |NA |NA | +|FreesearchR |25.9.3 |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.4 |2025-05-09 |CRAN (R 4.4.1) | +|gert |2.1.5 |2025-03-25 |CRAN (R 4.4.1) | |ggalluvial |0.12.5 |2023-02-22 |CRAN (R 4.4.0) | |ggcorrplot |0.1.4.1 |2023-09-05 |CRAN (R 4.4.0) | |ggforce |0.5.0 |2025-06-18 |CRAN (R 4.4.1) | |ggplot2 |3.5.2 |2025-04-09 |CRAN (R 4.4.1) | |ggridges |0.5.6 |2024-01-23 |CRAN (R 4.4.0) | |ggstats |0.10.0 |2025-07-02 |CRAN (R 4.4.1) | +|gh |1.5.0 |2025-05-26 |CRAN (R 4.4.1) | +|gitcreds |0.1.2 |2022-09-08 |CRAN (R 4.4.1) | |glue |1.8.0 |2024-09-30 |CRAN (R 4.4.1) | |gridExtra |2.3 |2017-09-09 |CRAN (R 4.4.1) | |gt |1.0.0 |2025-04-05 |CRAN (R 4.4.1) | @@ -108,11 +114,13 @@ |htmltools |0.5.8.1 |2024-04-04 |CRAN (R 4.4.1) | |htmlwidgets |1.6.4 |2023-12-06 |CRAN (R 4.4.0) | |httpuv |1.6.16 |2025-04-16 |CRAN (R 4.4.1) | +|httr2 |1.2.1 |2025-07-22 |CRAN (R 4.4.1) | |IDEAFilter |0.2.1 |2025-07-29 |CRAN (R 4.4.1) | |insight |1.4.0 |2025-08-18 |CRAN (R 4.4.1) | |iterators |1.0.14 |2022-02-05 |CRAN (R 4.4.1) | |jquerylib |0.1.4 |2021-04-26 |CRAN (R 4.4.0) | |jsonlite |2.0.0 |2025-03-27 |CRAN (R 4.4.1) | +|jsonvalidate |1.5.0 |2025-02-07 |CRAN (R 4.4.1) | |KernSmooth |2.23-26 |2025-01-01 |CRAN (R 4.4.1) | |keyring |1.4.1 |2025-06-15 |CRAN (R 4.4.1) | |knitr |1.50 |2025-03-16 |CRAN (R 4.4.1) | @@ -164,6 +172,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.1.0 |2025-07-02 |CRAN (R 4.4.1) | @@ -202,6 +211,7 @@ |shinyWidgets |0.9.0 |2025-02-21 |CRAN (R 4.4.1) | |stringi |1.8.7 |2025-03-27 |CRAN (R 4.4.1) | |stringr |1.5.1 |2023-11-14 |CRAN (R 4.4.0) | +|sys |3.4.3 |2024-10-04 |CRAN (R 4.4.1) | |systemfonts |1.2.3 |2025-04-30 |CRAN (R 4.4.1) | |testthat |3.2.3 |2025-01-13 |CRAN (R 4.4.1) | |textshaping |1.0.1 |2025-05-01 |CRAN (R 4.4.1) | @@ -217,6 +227,7 @@ |urlchecker |1.0.1 |2021-11-30 |CRAN (R 4.4.1) | |usethis |3.1.0 |2024-11-26 |CRAN (R 4.4.1) | |uuid |1.2-1 |2024-07-29 |CRAN (R 4.4.1) | +|V8 |6.0.6 |2025-08-18 |CRAN (R 4.4.1) | |vctrs |0.6.5 |2023-12-01 |CRAN (R 4.4.0) | |vroom |1.6.5 |2023-12-05 |CRAN (R 4.4.0) | |withr |3.0.2 |2024-10-28 |CRAN (R 4.4.1) | diff --git a/inst/translations/translation_da.csv b/inst/translations/translation_da.csv index 68d560c3..13ab3733 100644 --- a/inst/translations/translation_da.csv +++ b/inst/translations/translation_da.csv @@ -220,12 +220,27 @@ "Click to see the imported data","Click to see the imported data" "Regression table","Regression table" "Import a dataset from an environment","Import a dataset from an environment" -"Select a dataset:","Select a dataset:" +"Select a dataset:","Vælg datasæt:" "List of datasets...","List of datasets..." -"No data selected!","No data selected!" +"No data selected!","Ingen data valgt!" "Use a datasat from your environment or from the environment of a package.","Use a datasat from your environment or from the environment of a package." -"No dataset here...","No dataset here..." +"No dataset here...","Ingen datasæt her..." "Use a dataset from your environment or from the environment of a package.","Use a dataset from your environment or from the environment of a package." -"Not a data.frame","Not a data.frame" -"Select source","Select source" -"Select a data source:","Select a data source:" +"Not a data.frame","Ikke en data.frame" +"Select source","Vælg datakilde" +"Select a data source:","Vælg datakilde:" +"Yes","Ja" +"No","Nej" +"Coefficient plot","Coefficient plot" +"Select outcome variable","Select outcome variable" +"Choose regression analysis","Choose regression analysis" +"Covariables to format as categorical","Covariables to format as categorical" +"Select variable to stratify baseline","Select variable to stratify baseline" +"Select models to plot","Select models to plot" +"Creating regression models failed with the following error:","Creating regression models failed with the following error:" +"Creating a regression table failed with the following error:","Creating a regression table failed with the following error:" +"Saving the plot. Hold on for a moment..","Saving the plot. Hold on for a moment.." +"Running model assumptions checks failed with the following error:","Running model assumptions checks failed with the following error:" +"Select checks to plot","Select checks to plot" +"Multivariable regression model checks","Multivariable regression model checks" +"Grouped by {get_label(data,ter)}","Grouped by {get_label(data,ter)}" diff --git a/inst/translations/translation_sw.csv b/inst/translations/translation_sw.csv index 3d12c21f..42613fca 100644 --- a/inst/translations/translation_sw.csv +++ b/inst/translations/translation_sw.csv @@ -229,3 +229,18 @@ "Not a data.frame","Not a data.frame" "Select source","Select source" "Select a data source:","Select a data source:" +"Yes","Yes" +"No","No" +"Coefficient plot","Coefficient plot" +"Select outcome variable","Select outcome variable" +"Choose regression analysis","Choose regression analysis" +"Covariables to format as categorical","Covariables to format as categorical" +"Select variable to stratify baseline","Select variable to stratify baseline" +"Select models to plot","Select models to plot" +"Creating regression models failed with the following error:","Creating regression models failed with the following error:" +"Creating a regression table failed with the following error:","Creating a regression table failed with the following error:" +"Saving the plot. Hold on for a moment..","Saving the plot. Hold on for a moment.." +"Running model assumptions checks failed with the following error:","Running model assumptions checks failed with the following error:" +"Select checks to plot","Select checks to plot" +"Multivariable regression model checks","Multivariable regression model checks" +"Grouped by {get_label(data,ter)}","Grouped by {get_label(data,ter)}" diff --git a/renv.lock b/renv.lock index fb494ff6..73215377 100644 --- a/renv.lock +++ b/renv.lock @@ -1588,6 +1588,39 @@ "Maintainer": "Winston Chang ", "Repository": "CRAN" }, + "calendar": { + "Package": "calendar", + "Version": "0.2.0", + "Source": "Repository", + "Title": "Create, Read, Write, and Work with 'iCalendar' Files, Calendars and Scheduling Data", + "Authors@R": "c(person(given = \"Robin\", family = \"Lovelace\", role = c(\"aut\", \"cre\"), email = \"rob00x@gmail.com\", comment = c(ORCID = \"0000-0001-5679-6536\")), person(given = \"Layik\", family = \"Hama\", role = \"aut\", email = \"layik.hama@gmail.com\", comment = c(ORCID = \"0000-0003-1912-4890\")), person(given = \"Ollie\", family = \"Lloyd\", role = \"ctb\", email = \"o.lloyd@doctors.org.uk\", comment = c(ORCID = \"0000-0002-9385-1634\")), person(given = \"Franco\", family = \"Scarafia\", role = \"ctb\", email = \"franco.scarafia@hotmail.com\", comment = c(ORCID = \"0009-0005-9822-169X\")), person(given = \"Serkan\", family = \"Korkmaz\", email = \"serkor1@duck.com\", role = c(\"ctb\"), comment = c(ORCID = \"0000-0002-5052-0982\")) )", + "Description": "Provides function to create, read, write, and work with 'iCalendar' files (which typically have '.ics' or '.ical' extensions), and the scheduling data, calendars and timelines of people, organisations and other entities that they represent. 'iCalendar' is an open standard for exchanging calendar and scheduling information between users and computers, described at .", + "License": "Apache License (>= 2.0)", + "URL": "https://github.com/atfutures/calendar, https://atfutures.github.io/calendar/, https://github.com/ATFutures/calendar", + "BugReports": "https://github.com/ATFutures/calendar/issues", + "Depends": [ + "R (>= 3.4.0)" + ], + "Imports": [ + "cli", + "lubridate", + "tibble" + ], + "Suggests": [ + "covr", + "knitr", + "rmarkdown", + "testthat" + ], + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "LazyData": "true", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Robin Lovelace [aut, cre] (), Layik Hama [aut] (), Ollie Lloyd [ctb] (), Franco Scarafia [ctb] (), Serkan Korkmaz [ctb] ()", + "Maintainer": "Robin Lovelace ", + "Repository": "CRAN" + }, "cards": { "Package": "cards", "Version": "0.6.1", @@ -8257,6 +8290,56 @@ "NeedsCompilation": "yes", "Repository": "CRAN" }, + "stRoke": { + "Package": "stRoke", + "Version": "25.9.1", + "Source": "Repository", + "Title": "Clinical Stroke Research", + "Authors@R": "person(\"Andreas Gammelgaard\", \"Damsbo\", , \"agdamsbo@clin.au.dk\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-7559-1154\"))", + "Description": "A collection of tools for clinical trial data management and analysis in research and teaching. The package is mainly collected for personal use, but any use beyond that is encouraged. This package has migrated functions from 'agdamsbo/daDoctoR', and new functions has been added. Version follows months and year. See NEWS/Changelog for release notes. This package includes sampled data from the TALOS trial (Kraglund et al (2018) ). The win_prob() function is based on work by Zou et al (2022) . The age_calc() function is based on work by Becker (2020) .", + "URL": "https://agdamsbo.github.io/stRoke/, https://github.com/agdamsbo/stRoke", + "BugReports": "https://github.com/agdamsbo/stRoke/issues", + "License": "GPL-3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "LazyData": "true", + "Suggests": [ + "knitr", + "rmarkdown", + "testthat", + "here", + "spelling", + "usethis", + "pak", + "roxygen2", + "devtools" + ], + "Config/testthat/edition": "3", + "Imports": [ + "calendar", + "dplyr", + "ggplot2", + "grDevices", + "gtsummary", + "lubridate", + "MASS", + "rankinPlot", + "stats", + "tidyr", + "utils", + "tibble", + "tidyselect" + ], + "Depends": [ + "R (>= 4.1.0)" + ], + "VignetteBuilder": "knitr", + "Language": "en-US", + "NeedsCompilation": "no", + "Author": "Andreas Gammelgaard Damsbo [aut, cre] (ORCID: )", + "Maintainer": "Andreas Gammelgaard Damsbo ", + "Repository": "CRAN" + }, "stringi": { "Package": "stringi", "Version": "1.8.7",