mirror of
https://github.com/agdamsbo/FreesearchR.git
synced 2025-09-12 09:59:39 +02:00
Compare commits
No commits in common. "cdcf3f5920669a01ce8275775f0521237c02f209" and "4d4403d5e5189824753f7ed2048f0a5084dace7b" have entirely different histories.
cdcf3f5920
...
4d4403d5e5
14 changed files with 101 additions and 143 deletions
|
@ -9,7 +9,7 @@ type: software
|
||||||
license: AGPL-3.0-or-later
|
license: AGPL-3.0-or-later
|
||||||
title: 'FreesearchR: A free and open-source browser based data analysis tool for researchers
|
title: 'FreesearchR: A free and open-source browser based data analysis tool for researchers
|
||||||
with publication ready output'
|
with publication ready output'
|
||||||
version: 25.5.1
|
version: 25.4.5
|
||||||
doi: 10.5281/zenodo.14527429
|
doi: 10.5281/zenodo.14527429
|
||||||
abstract: Easily evaluate and analysis clinical health data in your browser on a server
|
abstract: Easily evaluate and analysis clinical health data in your browser on a server
|
||||||
or on your own device. Import data from multiple sources, summarise, modify and
|
or on your own device. Import data from multiple sources, summarise, modify and
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Package: FreesearchR
|
Package: FreesearchR
|
||||||
Title: A free and open-source browser based data analysis tool for researchers with publication ready output
|
Title: A free and open-source browser based data analysis tool for researchers with publication ready output
|
||||||
Version: 25.5.1
|
Version: 25.4.5
|
||||||
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")),
|
||||||
|
|
10
NEWS.md
10
NEWS.md
|
@ -1,13 +1,3 @@
|
||||||
# FreesearchR 25.5.1
|
|
||||||
|
|
||||||
- *FIX*: correct export of single variable plot.
|
|
||||||
|
|
||||||
- *NEW*: Include app version in report for reference.
|
|
||||||
|
|
||||||
- *NEW*: Show progress on connecting to a REDCap database.
|
|
||||||
|
|
||||||
- *FIX*: Data import code export.
|
|
||||||
|
|
||||||
# FreesearchR 25.4.5
|
# FreesearchR 25.4.5
|
||||||
|
|
||||||
- *BUG*: Regression results and code not returned correctly
|
- *BUG*: Regression results and code not returned correctly
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
app_version <- function()'25.5.1'
|
app_version <- function()'v25.4.5.250430'
|
||||||
|
|
|
@ -45,23 +45,15 @@ data_visuals_ui <- function(id, tab_title = "Plots", ...) {
|
||||||
title = "Download",
|
title = "Download",
|
||||||
icon = bsicons::bs_icon("download"),
|
icon = bsicons::bs_icon("download"),
|
||||||
shinyWidgets::noUiSliderInput(
|
shinyWidgets::noUiSliderInput(
|
||||||
inputId = ns("height_slide"),
|
inputId = ns("height"),
|
||||||
label = "Plot height (mm)",
|
label = "Plot height (mm)",
|
||||||
min = 50,
|
min = 50,
|
||||||
max = 300,
|
max = 300,
|
||||||
value = 100,
|
value = 100,
|
||||||
step = 1,
|
step = 1,
|
||||||
format = shinyWidgets::wNumbFormat(decimals = 0),
|
format = shinyWidgets::wNumbFormat(decimals = 0),
|
||||||
color = datamods:::get_primary_color(),
|
color = datamods:::get_primary_color()
|
||||||
inline = TRUE
|
|
||||||
),
|
),
|
||||||
# shiny::numericInput(
|
|
||||||
# inputId = ns("height_numeric"),
|
|
||||||
# label = "Plot height (mm)",
|
|
||||||
# min = 50,
|
|
||||||
# max = 300,
|
|
||||||
# value = 100
|
|
||||||
# ),
|
|
||||||
shinyWidgets::noUiSliderInput(
|
shinyWidgets::noUiSliderInput(
|
||||||
inputId = ns("width"),
|
inputId = ns("width"),
|
||||||
label = "Plot width (mm)",
|
label = "Plot width (mm)",
|
||||||
|
@ -380,32 +372,17 @@ data_visuals_server <- function(id,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
# shiny::observeEvent(input$height_numeric, {
|
|
||||||
# shinyWidgets::updateNoUiSliderInput(session, ns("height_slide"), value = input$height_numeric)
|
|
||||||
# }, ignoreInit = TRUE)
|
|
||||||
# shiny::observeEvent(input$height_slide, {
|
|
||||||
# shiny::updateNumericInput(session, ns("height_numeric"), value = input$height_slide)
|
|
||||||
# }, ignoreInit = TRUE)
|
|
||||||
|
|
||||||
|
|
||||||
output$download_plot <- shiny::downloadHandler(
|
output$download_plot <- shiny::downloadHandler(
|
||||||
filename = shiny::reactive({
|
filename = shiny::reactive({
|
||||||
paste0("plot.", input$plot_type)
|
paste0("plot.", input$plot_type)
|
||||||
}),
|
}),
|
||||||
content = function(file) {
|
content = function(file) {
|
||||||
if (inherits(rv$plot,"patchwork")){
|
|
||||||
plot <- rv$plot
|
|
||||||
} else {
|
|
||||||
plot <- rv$plot[[1]]
|
|
||||||
|
|
||||||
}
|
|
||||||
# browser()
|
|
||||||
shiny::withProgress(message = "Drawing the plot. Hold on for a moment..", {
|
shiny::withProgress(message = "Drawing the plot. Hold on for a moment..", {
|
||||||
ggplot2::ggsave(
|
ggplot2::ggsave(
|
||||||
filename = file,
|
filename = file,
|
||||||
plot = plot,
|
plot = rv$plot,
|
||||||
width = input$width,
|
width = input$width,
|
||||||
height = input$height_slide,
|
height = input$height,
|
||||||
dpi = 300,
|
dpi = 300,
|
||||||
units = "mm", scale = 2
|
units = "mm", scale = 2
|
||||||
)
|
)
|
||||||
|
@ -540,8 +517,8 @@ supported_plots <- function() {
|
||||||
fun = "plot_euler",
|
fun = "plot_euler",
|
||||||
descr = "Euler diagram",
|
descr = "Euler diagram",
|
||||||
note = "Generate area-proportional Euler diagrams to display set relationships",
|
note = "Generate area-proportional Euler diagrams to display set relationships",
|
||||||
primary.type = c("dichotomous", "categorical"),
|
primary.type = "dichotomous",
|
||||||
secondary.type = c("dichotomous", "categorical"),
|
secondary.type = "dichotomous",
|
||||||
secondary.multi = TRUE,
|
secondary.multi = TRUE,
|
||||||
secondary.max = 4,
|
secondary.max = 4,
|
||||||
tertiary.type = c("dichotomous", "categorical"),
|
tertiary.type = c("dichotomous", "categorical"),
|
||||||
|
|
|
@ -65,7 +65,7 @@ write_rmd <- function(data, ...) {
|
||||||
## Ref: https://github.com/quarto-dev/quarto-cli/discussions/4041
|
## Ref: https://github.com/quarto-dev/quarto-cli/discussions/4041
|
||||||
## Outputs to the same as the .qmd file
|
## Outputs to the same as the .qmd file
|
||||||
rmarkdown::render(
|
rmarkdown::render(
|
||||||
params = list(data.file = "web_data.rds",version=app_version()),
|
params = list(data.file = "web_data.rds"),
|
||||||
# execute_params = list(data.file = temp),
|
# execute_params = list(data.file = temp),
|
||||||
...
|
...
|
||||||
)
|
)
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
hosted_version <- function()'v25.5.1-250505'
|
|
|
@ -109,12 +109,6 @@ plot_euler <- function(data, pri, sec, ter = NULL, seed = 2103) {
|
||||||
#' ) |> plot_euler_single()
|
#' ) |> plot_euler_single()
|
||||||
#' mtcars[c("vs", "am")] |> plot_euler_single()
|
#' mtcars[c("vs", "am")] |> plot_euler_single()
|
||||||
plot_euler_single <- function(data) {
|
plot_euler_single <- function(data) {
|
||||||
# if (any("categorical" %in% data_type(data))){
|
|
||||||
# shape <- "ellipse"
|
|
||||||
# } else {
|
|
||||||
# shape <- "circle"
|
|
||||||
# }
|
|
||||||
|
|
||||||
data |>
|
data |>
|
||||||
ggeulerr(shape = "circle") +
|
ggeulerr(shape = "circle") +
|
||||||
ggplot2::theme_void() +
|
ggplot2::theme_void() +
|
||||||
|
|
|
@ -112,7 +112,7 @@ m_redcap_readUI <- function(id, title = TRUE, url = NULL) {
|
||||||
tags$p(phosphoricons::ph("info", weight = "bold"), "Please specify data to download, then press 'Import'.")
|
tags$p(phosphoricons::ph("info", weight = "bold"), "Please specify data to download, then press 'Import'.")
|
||||||
),
|
),
|
||||||
dismissible = TRUE
|
dismissible = TRUE
|
||||||
) # ,
|
)#,
|
||||||
## TODO: Use busy indicator like on download to have button activate/deactivate
|
## TODO: Use busy indicator like on download to have button activate/deactivate
|
||||||
# bslib::input_task_button(
|
# bslib::input_task_button(
|
||||||
# id = ns("data_import"),
|
# id = ns("data_import"),
|
||||||
|
@ -200,9 +200,7 @@ m_redcap_readServer <- function(id) {
|
||||||
)
|
)
|
||||||
|
|
||||||
# browser()
|
# browser()
|
||||||
shiny::withProgress({
|
imported <- try(rlang::exec(REDCapR::redcap_metadata_read, !!!parameters), silent = TRUE)
|
||||||
imported <- try(rlang::exec(REDCapR::redcap_metadata_read, !!!parameters), silent = TRUE)
|
|
||||||
},message = paste("Connecting to",data_rv$uri))
|
|
||||||
|
|
||||||
## TODO: Simplify error messages
|
## TODO: Simplify error messages
|
||||||
if (inherits(imported, "try-error") || NROW(imported) < 1 || ifelse(is.list(imported), !isTRUE(imported$success), FALSE)) {
|
if (inherits(imported, "try-error") || NROW(imported) < 1 || ifelse(is.list(imported), !isTRUE(imported$success), FALSE)) {
|
||||||
|
@ -229,10 +227,8 @@ m_redcap_readServer <- function(id) {
|
||||||
include_data_alert(
|
include_data_alert(
|
||||||
see_data_text = "Click to see data dictionary",
|
see_data_text = "Click to see data dictionary",
|
||||||
dataIdName = "see_data",
|
dataIdName = "see_data",
|
||||||
extra = tags$p(
|
extra = tags$p(tags$b(phosphoricons::ph("check", weight = "bold"), "Connected to server!"),
|
||||||
tags$b(phosphoricons::ph("check", weight = "bold"), "Connected to server!"),
|
glue::glue("The {data_rv$info$project_title} project is loaded.")),
|
||||||
glue::glue("The {data_rv$info$project_title} project is loaded.")
|
|
||||||
),
|
|
||||||
btn_show_data = TRUE
|
btn_show_data = TRUE
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
BIN
R/sysdata.rda
BIN
R/sysdata.rda
Binary file not shown.
45
SESSION.md
45
SESSION.md
|
@ -11,11 +11,11 @@
|
||||||
|collate |en_US.UTF-8 |
|
|collate |en_US.UTF-8 |
|
||||||
|ctype |en_US.UTF-8 |
|
|ctype |en_US.UTF-8 |
|
||||||
|tz |Europe/Copenhagen |
|
|tz |Europe/Copenhagen |
|
||||||
|date |2025-05-05 |
|
|date |2025-04-30 |
|
||||||
|rstudio |2024.12.1+563 Kousa Dogwood (desktop) |
|
|rstudio |2024.12.1+563 Kousa Dogwood (desktop) |
|
||||||
|pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) |
|
|pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) |
|
||||||
|quarto |1.6.40 @ /usr/local/bin/quarto |
|
|quarto |1.6.40 @ /usr/local/bin/quarto |
|
||||||
|FreesearchR |25.5.1.250505 |
|
|FreesearchR |25.4.5.250430 |
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
@ -24,8 +24,10 @@
|
||||||
|package |loadedversion |date |source |
|
|package |loadedversion |date |source |
|
||||||
|:-------------|:-------------|:----------|:--------------|
|
|:-------------|:-------------|:----------|:--------------|
|
||||||
|apexcharter |0.4.4 |2024-09-06 |CRAN (R 4.4.1) |
|
|apexcharter |0.4.4 |2024-09-06 |CRAN (R 4.4.1) |
|
||||||
|
|askpass |1.2.1 |2024-10-04 |CRAN (R 4.4.1) |
|
||||||
|assertthat |0.2.1 |2019-03-21 |CRAN (R 4.4.1) |
|
|assertthat |0.2.1 |2019-03-21 |CRAN (R 4.4.1) |
|
||||||
|backports |1.5.0 |2024-05-23 |CRAN (R 4.4.1) |
|
|backports |1.5.0 |2024-05-23 |CRAN (R 4.4.1) |
|
||||||
|
|base64enc |0.1-3 |2015-07-28 |CRAN (R 4.4.1) |
|
||||||
|bayestestR |0.15.3 |2025-04-28 |CRAN (R 4.4.1) |
|
|bayestestR |0.15.3 |2025-04-28 |CRAN (R 4.4.1) |
|
||||||
|bit |4.6.0 |2025-03-06 |CRAN (R 4.4.1) |
|
|bit |4.6.0 |2025-03-06 |CRAN (R 4.4.1) |
|
||||||
|bit64 |4.6.0-1 |2025-01-16 |CRAN (R 4.4.1) |
|
|bit64 |4.6.0-1 |2025-01-16 |CRAN (R 4.4.1) |
|
||||||
|
@ -35,14 +37,21 @@
|
||||||
|bsicons |0.1.2 |2023-11-04 |CRAN (R 4.4.0) |
|
|bsicons |0.1.2 |2023-11-04 |CRAN (R 4.4.0) |
|
||||||
|bslib |0.9.0 |2025-01-30 |CRAN (R 4.4.1) |
|
|bslib |0.9.0 |2025-01-30 |CRAN (R 4.4.1) |
|
||||||
|cachem |1.1.0 |2024-05-16 |CRAN (R 4.4.1) |
|
|cachem |1.1.0 |2024-05-16 |CRAN (R 4.4.1) |
|
||||||
|
|cards |0.6.0 |2025-04-11 |CRAN (R 4.4.1) |
|
||||||
|cellranger |1.1.0 |2016-07-27 |CRAN (R 4.4.0) |
|
|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) |
|
|class |7.3-23 |2025-01-01 |CRAN (R 4.4.1) |
|
||||||
|classInt |0.4-11 |2025-01-08 |CRAN (R 4.4.1) |
|
|classInt |0.4-11 |2025-01-08 |CRAN (R 4.4.1) |
|
||||||
|cli |3.6.5 |2025-04-23 |CRAN (R 4.4.1) |
|
|cli |3.6.5 |2025-04-23 |CRAN (R 4.4.1) |
|
||||||
|
|cluster |2.1.8.1 |2025-03-12 |CRAN (R 4.4.1) |
|
||||||
|
|colorspace |2.1-1 |2024-07-26 |CRAN (R 4.4.1) |
|
||||||
|commonmark |1.9.5 |2025-03-17 |CRAN (R 4.4.1) |
|
|commonmark |1.9.5 |2025-03-17 |CRAN (R 4.4.1) |
|
||||||
|correlation |0.8.7 |2025-03-03 |CRAN (R 4.4.1) |
|
|correlation |0.8.7 |2025-03-03 |CRAN (R 4.4.1) |
|
||||||
|crayon |1.5.3 |2024-06-20 |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) |
|
||||||
|crosstalk |1.2.1 |2023-11-23 |CRAN (R 4.4.0) |
|
|crosstalk |1.2.1 |2023-11-23 |CRAN (R 4.4.0) |
|
||||||
|
|curl |6.2.2 |2025-03-24 |CRAN (R 4.4.1) |
|
||||||
|data.table |1.17.0 |2025-02-22 |CRAN (R 4.4.1) |
|
|data.table |1.17.0 |2025-02-22 |CRAN (R 4.4.1) |
|
||||||
|datamods |1.5.3 |2024-10-02 |CRAN (R 4.4.1) |
|
|datamods |1.5.3 |2024-10-02 |CRAN (R 4.4.1) |
|
||||||
|datawizard |1.0.2 |2025-03-24 |CRAN (R 4.4.1) |
|
|datawizard |1.0.2 |2025-03-24 |CRAN (R 4.4.1) |
|
||||||
|
@ -61,32 +70,47 @@
|
||||||
|fastmap |1.2.0 |2024-05-15 |CRAN (R 4.4.1) |
|
|fastmap |1.2.0 |2024-05-15 |CRAN (R 4.4.1) |
|
||||||
|fontawesome |0.5.3 |2024-11-16 |CRAN (R 4.4.1) |
|
|fontawesome |0.5.3 |2024-11-16 |CRAN (R 4.4.1) |
|
||||||
|forcats |1.0.0 |2023-01-29 |CRAN (R 4.4.0) |
|
|forcats |1.0.0 |2023-01-29 |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) |
|
||||||
|fs |1.6.6 |2025-04-12 |CRAN (R 4.4.1) |
|
|fs |1.6.6 |2025-04-12 |CRAN (R 4.4.1) |
|
||||||
|generics |0.1.3 |2022-07-05 |CRAN (R 4.4.1) |
|
|generics |0.1.3 |2022-07-05 |CRAN (R 4.4.1) |
|
||||||
|
|gert |2.1.5 |2025-03-25 |CRAN (R 4.4.1) |
|
||||||
|
|ggcorrplot |0.1.4.1 |2023-09-05 |CRAN (R 4.4.0) |
|
||||||
|ggplot2 |3.5.2 |2025-04-09 |CRAN (R 4.4.1) |
|
|ggplot2 |3.5.2 |2025-04-09 |CRAN (R 4.4.1) |
|
||||||
|
|ggstats |0.9.0 |2025-03-10 |CRAN (R 4.4.1) |
|
||||||
|
|gh |1.4.1 |2024-03-28 |CRAN (R 4.4.0) |
|
||||||
|
|gitcreds |0.1.2 |2022-09-08 |CRAN (R 4.4.1) |
|
||||||
|glue |1.8.0 |2024-09-30 |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) |
|
|gt |1.0.0 |2025-04-05 |CRAN (R 4.4.1) |
|
||||||
|gtable |0.3.6 |2024-10-25 |CRAN (R 4.4.1) |
|
|gtable |0.3.6 |2024-10-25 |CRAN (R 4.4.1) |
|
||||||
|gtsummary |2.2.0 |2025-04-14 |CRAN (R 4.4.1) |
|
|gtsummary |2.2.0 |2025-04-14 |CRAN (R 4.4.1) |
|
||||||
|haven |2.5.4 |2023-11-30 |CRAN (R 4.4.0) |
|
|haven |2.5.4 |2023-11-30 |CRAN (R 4.4.0) |
|
||||||
|here |1.0.1 |2020-12-13 |CRAN (R 4.4.1) |
|
|here |1.0.1 |2020-12-13 |CRAN (R 4.4.1) |
|
||||||
|
|Hmisc |5.2-3 |2025-03-16 |CRAN (R 4.4.1) |
|
||||||
|hms |1.1.3 |2023-03-21 |CRAN (R 4.4.0) |
|
|hms |1.1.3 |2023-03-21 |CRAN (R 4.4.0) |
|
||||||
|
|htmlTable |2.4.3 |2024-07-21 |CRAN (R 4.4.0) |
|
||||||
|htmltools |0.5.8.1 |2024-04-04 |CRAN (R 4.4.1) |
|
|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) |
|
|htmlwidgets |1.6.4 |2023-12-06 |CRAN (R 4.4.0) |
|
||||||
|httpuv |1.6.16 |2025-04-16 |CRAN (R 4.4.1) |
|
|httpuv |1.6.16 |2025-04-16 |CRAN (R 4.4.1) |
|
||||||
|
|httr2 |1.1.2 |2025-03-26 |CRAN (R 4.4.1) |
|
||||||
|IDEAFilter |0.2.0 |2024-04-15 |CRAN (R 4.4.0) |
|
|IDEAFilter |0.2.0 |2024-04-15 |CRAN (R 4.4.0) |
|
||||||
|insight |1.2.0 |2025-04-22 |CRAN (R 4.4.1) |
|
|insight |1.2.0 |2025-04-22 |CRAN (R 4.4.1) |
|
||||||
|jquerylib |0.1.4 |2021-04-26 |CRAN (R 4.4.0) |
|
|jquerylib |0.1.4 |2021-04-26 |CRAN (R 4.4.0) |
|
||||||
|jsonlite |2.0.0 |2025-03-27 |CRAN (R 4.4.1) |
|
|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) |
|
|KernSmooth |2.23-26 |2025-01-01 |CRAN (R 4.4.1) |
|
||||||
|keyring |1.3.2 |2023-12-11 |CRAN (R 4.4.0) |
|
|keyring |1.3.2 |2023-12-11 |CRAN (R 4.4.0) |
|
||||||
|knitr |1.50 |2025-03-16 |CRAN (R 4.4.1) |
|
|knitr |1.50 |2025-03-16 |CRAN (R 4.4.1) |
|
||||||
|labeling |0.4.3 |2023-08-29 |CRAN (R 4.4.1) |
|
|labeling |0.4.3 |2023-08-29 |CRAN (R 4.4.1) |
|
||||||
|
|labelled |2.14.0 |2025-01-08 |CRAN (R 4.4.1) |
|
||||||
|later |1.4.2 |2025-04-08 |CRAN (R 4.4.1) |
|
|later |1.4.2 |2025-04-08 |CRAN (R 4.4.1) |
|
||||||
|lattice |0.22-7 |2025-04-02 |CRAN (R 4.4.1) |
|
|lattice |0.22-7 |2025-04-02 |CRAN (R 4.4.1) |
|
||||||
|lifecycle |1.0.4 |2023-11-07 |CRAN (R 4.4.1) |
|
|lifecycle |1.0.4 |2023-11-07 |CRAN (R 4.4.1) |
|
||||||
|
|litedown |0.7 |2025-04-08 |CRAN (R 4.4.1) |
|
||||||
|lme4 |1.1-37 |2025-03-26 |CRAN (R 4.4.1) |
|
|lme4 |1.1-37 |2025-03-26 |CRAN (R 4.4.1) |
|
||||||
|magrittr |2.0.3 |2022-03-30 |CRAN (R 4.4.1) |
|
|magrittr |2.0.3 |2022-03-30 |CRAN (R 4.4.1) |
|
||||||
|
|markdown |2.0 |2025-03-23 |CRAN (R 4.4.1) |
|
||||||
|MASS |7.3-65 |2025-02-28 |CRAN (R 4.4.1) |
|
|MASS |7.3-65 |2025-02-28 |CRAN (R 4.4.1) |
|
||||||
|Matrix |1.7-3 |2025-03-11 |CRAN (R 4.4.1) |
|
|Matrix |1.7-3 |2025-03-11 |CRAN (R 4.4.1) |
|
||||||
|memoise |2.0.1 |2021-11-26 |CRAN (R 4.4.0) |
|
|memoise |2.0.1 |2021-11-26 |CRAN (R 4.4.0) |
|
||||||
|
@ -96,6 +120,8 @@
|
||||||
|modelbased |0.10.0 |2025-03-10 |CRAN (R 4.4.1) |
|
|modelbased |0.10.0 |2025-03-10 |CRAN (R 4.4.1) |
|
||||||
|nlme |3.1-168 |2025-03-31 |CRAN (R 4.4.1) |
|
|nlme |3.1-168 |2025-03-31 |CRAN (R 4.4.1) |
|
||||||
|nloptr |2.2.1 |2025-03-17 |CRAN (R 4.4.1) |
|
|nloptr |2.2.1 |2025-03-17 |CRAN (R 4.4.1) |
|
||||||
|
|nnet |7.3-20 |2025-01-01 |CRAN (R 4.4.1) |
|
||||||
|
|openssl |2.3.2 |2025-02-03 |CRAN (R 4.4.1) |
|
||||||
|openxlsx2 |1.15 |2025-04-25 |CRAN (R 4.4.1) |
|
|openxlsx2 |1.15 |2025-04-25 |CRAN (R 4.4.1) |
|
||||||
|parameters |0.24.2 |2025-03-04 |CRAN (R 4.4.1) |
|
|parameters |0.24.2 |2025-03-04 |CRAN (R 4.4.1) |
|
||||||
|patchwork |1.3.0 |2024-09-16 |CRAN (R 4.4.1) |
|
|patchwork |1.3.0 |2024-09-16 |CRAN (R 4.4.1) |
|
||||||
|
@ -105,6 +131,7 @@
|
||||||
|pkgbuild |1.4.7 |2025-03-24 |CRAN (R 4.4.1) |
|
|pkgbuild |1.4.7 |2025-03-24 |CRAN (R 4.4.1) |
|
||||||
|pkgconfig |2.0.3 |2019-09-22 |CRAN (R 4.4.1) |
|
|pkgconfig |2.0.3 |2019-09-22 |CRAN (R 4.4.1) |
|
||||||
|pkgload |1.4.0 |2024-06-28 |CRAN (R 4.4.0) |
|
|pkgload |1.4.0 |2024-06-28 |CRAN (R 4.4.0) |
|
||||||
|
|plyr |1.8.9 |2023-10-02 |CRAN (R 4.4.1) |
|
||||||
|processx |3.8.6 |2025-02-21 |CRAN (R 4.4.1) |
|
|processx |3.8.6 |2025-02-21 |CRAN (R 4.4.1) |
|
||||||
|profvis |0.4.0 |2024-09-20 |CRAN (R 4.4.1) |
|
|profvis |0.4.0 |2024-09-20 |CRAN (R 4.4.1) |
|
||||||
|promises |1.3.2 |2024-11-28 |CRAN (R 4.4.1) |
|
|promises |1.3.2 |2024-11-28 |CRAN (R 4.4.1) |
|
||||||
|
@ -112,9 +139,13 @@
|
||||||
|ps |1.9.1 |2025-04-12 |CRAN (R 4.4.1) |
|
|ps |1.9.1 |2025-04-12 |CRAN (R 4.4.1) |
|
||||||
|purrr |1.0.4 |2025-02-05 |CRAN (R 4.4.1) |
|
|purrr |1.0.4 |2025-02-05 |CRAN (R 4.4.1) |
|
||||||
|quarto |1.4.4 |2024-07-20 |CRAN (R 4.4.0) |
|
|quarto |1.4.4 |2024-07-20 |CRAN (R 4.4.0) |
|
||||||
|
|R.cache |0.16.0 |2022-07-21 |CRAN (R 4.4.0) |
|
||||||
|
|R.methodsS3 |1.8.2 |2022-06-13 |CRAN (R 4.4.1) |
|
||||||
|
|R.oo |1.27.0 |2024-11-01 |CRAN (R 4.4.1) |
|
||||||
|
|R.utils |2.13.0 |2025-02-24 |CRAN (R 4.4.1) |
|
||||||
|R6 |2.6.1 |2025-02-15 |CRAN (R 4.4.1) |
|
|R6 |2.6.1 |2025-02-15 |CRAN (R 4.4.1) |
|
||||||
|ragg |1.4.0 |2025-04-10 |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) |
|
|rbibutils |2.3 |2024-10-04 |CRAN (R 4.4.1) |
|
||||||
|RColorBrewer |1.1-3 |2022-04-03 |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) |
|
|Rcpp |1.0.14 |2025-01-12 |CRAN (R 4.4.1) |
|
||||||
|
@ -127,12 +158,13 @@
|
||||||
|REDCapR |1.4.0 |2025-01-11 |CRAN (R 4.4.1) |
|
|REDCapR |1.4.0 |2025-01-11 |CRAN (R 4.4.1) |
|
||||||
|reformulas |0.4.0 |2024-11-03 |CRAN (R 4.4.1) |
|
|reformulas |0.4.0 |2024-11-03 |CRAN (R 4.4.1) |
|
||||||
|remotes |2.5.0 |2024-03-17 |CRAN (R 4.4.1) |
|
|remotes |2.5.0 |2024-03-17 |CRAN (R 4.4.1) |
|
||||||
|rempsyc |0.1.9 |2025-02-01 |CRAN (R 4.4.1) |
|
|
||||||
|renv |1.1.4 |2025-03-20 |CRAN (R 4.4.1) |
|
|renv |1.1.4 |2025-03-20 |CRAN (R 4.4.1) |
|
||||||
|report |0.6.1 |2025-02-07 |CRAN (R 4.4.1) |
|
|report |0.6.1 |2025-02-07 |CRAN (R 4.4.1) |
|
||||||
|
|reshape2 |1.4.4 |2020-04-09 |CRAN (R 4.4.0) |
|
||||||
|rio |1.2.3 |2024-09-25 |CRAN (R 4.4.1) |
|
|rio |1.2.3 |2024-09-25 |CRAN (R 4.4.1) |
|
||||||
|rlang |1.1.6 |2025-04-11 |CRAN (R 4.4.1) |
|
|rlang |1.1.6 |2025-04-11 |CRAN (R 4.4.1) |
|
||||||
|rmarkdown |2.29 |2024-11-04 |CRAN (R 4.4.1) |
|
|rmarkdown |2.29 |2024-11-04 |CRAN (R 4.4.1) |
|
||||||
|
|rpart |4.1.24 |2025-01-07 |CRAN (R 4.4.1) |
|
||||||
|rprojroot |2.0.4 |2023-11-05 |CRAN (R 4.4.1) |
|
|rprojroot |2.0.4 |2023-11-05 |CRAN (R 4.4.1) |
|
||||||
|rsconnect |1.3.4 |2025-01-22 |CRAN (R 4.4.1) |
|
|rsconnect |1.3.4 |2025-01-22 |CRAN (R 4.4.1) |
|
||||||
|rstudioapi |0.17.1 |2024-10-22 |CRAN (R 4.4.1) |
|
|rstudioapi |0.17.1 |2024-10-22 |CRAN (R 4.4.1) |
|
||||||
|
@ -145,6 +177,9 @@
|
||||||
|shinyTime |1.0.3 |2022-08-19 |CRAN (R 4.4.0) |
|
|shinyTime |1.0.3 |2022-08-19 |CRAN (R 4.4.0) |
|
||||||
|shinyWidgets |0.9.0 |2025-02-21 |CRAN (R 4.4.1) |
|
|shinyWidgets |0.9.0 |2025-02-21 |CRAN (R 4.4.1) |
|
||||||
|stringi |1.8.7 |2025-03-27 |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) |
|
||||||
|
|styler |1.10.3 |2024-04-07 |CRAN (R 4.4.0) |
|
||||||
|
|sys |3.4.3 |2024-10-04 |CRAN (R 4.4.1) |
|
||||||
|systemfonts |1.2.2 |2025-04-04 |CRAN (R 4.4.1) |
|
|systemfonts |1.2.2 |2025-04-04 |CRAN (R 4.4.1) |
|
||||||
|textshaping |1.0.0 |2025-01-20 |CRAN (R 4.4.1) |
|
|textshaping |1.0.0 |2025-01-20 |CRAN (R 4.4.1) |
|
||||||
|tibble |3.2.1 |2023-03-20 |CRAN (R 4.4.0) |
|
|tibble |3.2.1 |2023-03-20 |CRAN (R 4.4.0) |
|
||||||
|
@ -154,8 +189,8 @@
|
||||||
|tzdb |0.5.0 |2025-03-15 |CRAN (R 4.4.1) |
|
|tzdb |0.5.0 |2025-03-15 |CRAN (R 4.4.1) |
|
||||||
|urlchecker |1.0.1 |2021-11-30 |CRAN (R 4.4.1) |
|
|urlchecker |1.0.1 |2021-11-30 |CRAN (R 4.4.1) |
|
||||||
|usethis |3.1.0 |2024-11-26 |CRAN (R 4.4.1) |
|
|usethis |3.1.0 |2024-11-26 |CRAN (R 4.4.1) |
|
||||||
|
|V8 |6.0.3 |2025-03-26 |CRAN (R 4.4.1) |
|
||||||
|vctrs |0.6.5 |2023-12-01 |CRAN (R 4.4.0) |
|
|vctrs |0.6.5 |2023-12-01 |CRAN (R 4.4.0) |
|
||||||
|viridisLite |0.4.2 |2023-05-02 |CRAN (R 4.4.1) |
|
|
||||||
|vroom |1.6.5 |2023-12-05 |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) |
|
|withr |3.0.2 |2024-10-28 |CRAN (R 4.4.1) |
|
||||||
|writexl |1.5.4 |2025-04-15 |CRAN (R 4.4.1) |
|
|writexl |1.5.4 |2025-04-15 |CRAN (R 4.4.1) |
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#### Current file: /Users/au301842/FreesearchR/R//app_version.R
|
#### Current file: /Users/au301842/FreesearchR/R//app_version.R
|
||||||
########
|
########
|
||||||
|
|
||||||
app_version <- function()'25.5.1'
|
app_version <- function()'v25.4.4.250430'
|
||||||
|
|
||||||
|
|
||||||
########
|
########
|
||||||
|
@ -1619,23 +1619,15 @@ data_visuals_ui <- function(id, tab_title = "Plots", ...) {
|
||||||
title = "Download",
|
title = "Download",
|
||||||
icon = bsicons::bs_icon("download"),
|
icon = bsicons::bs_icon("download"),
|
||||||
shinyWidgets::noUiSliderInput(
|
shinyWidgets::noUiSliderInput(
|
||||||
inputId = ns("height_slide"),
|
inputId = ns("height"),
|
||||||
label = "Plot height (mm)",
|
label = "Plot height (mm)",
|
||||||
min = 50,
|
min = 50,
|
||||||
max = 300,
|
max = 300,
|
||||||
value = 100,
|
value = 100,
|
||||||
step = 1,
|
step = 1,
|
||||||
format = shinyWidgets::wNumbFormat(decimals = 0),
|
format = shinyWidgets::wNumbFormat(decimals = 0),
|
||||||
color = datamods:::get_primary_color(),
|
color = datamods:::get_primary_color()
|
||||||
inline = TRUE
|
|
||||||
),
|
),
|
||||||
# shiny::numericInput(
|
|
||||||
# inputId = ns("height_numeric"),
|
|
||||||
# label = "Plot height (mm)",
|
|
||||||
# min = 50,
|
|
||||||
# max = 300,
|
|
||||||
# value = 100
|
|
||||||
# ),
|
|
||||||
shinyWidgets::noUiSliderInput(
|
shinyWidgets::noUiSliderInput(
|
||||||
inputId = ns("width"),
|
inputId = ns("width"),
|
||||||
label = "Plot width (mm)",
|
label = "Plot width (mm)",
|
||||||
|
@ -1954,32 +1946,17 @@ data_visuals_server <- function(id,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
# shiny::observeEvent(input$height_numeric, {
|
|
||||||
# shinyWidgets::updateNoUiSliderInput(session, ns("height_slide"), value = input$height_numeric)
|
|
||||||
# }, ignoreInit = TRUE)
|
|
||||||
# shiny::observeEvent(input$height_slide, {
|
|
||||||
# shiny::updateNumericInput(session, ns("height_numeric"), value = input$height_slide)
|
|
||||||
# }, ignoreInit = TRUE)
|
|
||||||
|
|
||||||
|
|
||||||
output$download_plot <- shiny::downloadHandler(
|
output$download_plot <- shiny::downloadHandler(
|
||||||
filename = shiny::reactive({
|
filename = shiny::reactive({
|
||||||
paste0("plot.", input$plot_type)
|
paste0("plot.", input$plot_type)
|
||||||
}),
|
}),
|
||||||
content = function(file) {
|
content = function(file) {
|
||||||
if (inherits(rv$plot,"patchwork")){
|
|
||||||
plot <- rv$plot
|
|
||||||
} else {
|
|
||||||
plot <- rv$plot[[1]]
|
|
||||||
|
|
||||||
}
|
|
||||||
# browser()
|
|
||||||
shiny::withProgress(message = "Drawing the plot. Hold on for a moment..", {
|
shiny::withProgress(message = "Drawing the plot. Hold on for a moment..", {
|
||||||
ggplot2::ggsave(
|
ggplot2::ggsave(
|
||||||
filename = file,
|
filename = file,
|
||||||
plot = plot,
|
plot = rv$plot,
|
||||||
width = input$width,
|
width = input$width,
|
||||||
height = input$height_slide,
|
height = input$height,
|
||||||
dpi = 300,
|
dpi = 300,
|
||||||
units = "mm", scale = 2
|
units = "mm", scale = 2
|
||||||
)
|
)
|
||||||
|
@ -2114,8 +2091,8 @@ supported_plots <- function() {
|
||||||
fun = "plot_euler",
|
fun = "plot_euler",
|
||||||
descr = "Euler diagram",
|
descr = "Euler diagram",
|
||||||
note = "Generate area-proportional Euler diagrams to display set relationships",
|
note = "Generate area-proportional Euler diagrams to display set relationships",
|
||||||
primary.type = c("dichotomous", "categorical"),
|
primary.type = "dichotomous",
|
||||||
secondary.type = c("dichotomous", "categorical"),
|
secondary.type = "dichotomous",
|
||||||
secondary.multi = TRUE,
|
secondary.multi = TRUE,
|
||||||
secondary.max = 4,
|
secondary.max = 4,
|
||||||
tertiary.type = c("dichotomous", "categorical"),
|
tertiary.type = c("dichotomous", "categorical"),
|
||||||
|
@ -3361,7 +3338,7 @@ write_rmd <- function(data, ...) {
|
||||||
## Ref: https://github.com/quarto-dev/quarto-cli/discussions/4041
|
## Ref: https://github.com/quarto-dev/quarto-cli/discussions/4041
|
||||||
## Outputs to the same as the .qmd file
|
## Outputs to the same as the .qmd file
|
||||||
rmarkdown::render(
|
rmarkdown::render(
|
||||||
params = list(data.file = "web_data.rds",version=app_version()),
|
params = list(data.file = "web_data.rds"),
|
||||||
# execute_params = list(data.file = temp),
|
# execute_params = list(data.file = temp),
|
||||||
...
|
...
|
||||||
)
|
)
|
||||||
|
@ -3950,13 +3927,6 @@ is_identical_to_previous <- function(data, no.name = TRUE) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
########
|
|
||||||
#### Current file: /Users/au301842/FreesearchR/R//hosted_version.R
|
|
||||||
########
|
|
||||||
|
|
||||||
hosted_version <- function()'v25.5.1-250505'
|
|
||||||
|
|
||||||
|
|
||||||
########
|
########
|
||||||
#### Current file: /Users/au301842/FreesearchR/R//html_dependency_freesearchr.R
|
#### Current file: /Users/au301842/FreesearchR/R//html_dependency_freesearchr.R
|
||||||
########
|
########
|
||||||
|
@ -4814,12 +4784,6 @@ plot_euler <- function(data, pri, sec, ter = NULL, seed = 2103) {
|
||||||
#' ) |> plot_euler_single()
|
#' ) |> plot_euler_single()
|
||||||
#' mtcars[c("vs", "am")] |> plot_euler_single()
|
#' mtcars[c("vs", "am")] |> plot_euler_single()
|
||||||
plot_euler_single <- function(data) {
|
plot_euler_single <- function(data) {
|
||||||
# if (any("categorical" %in% data_type(data))){
|
|
||||||
# shape <- "ellipse"
|
|
||||||
# } else {
|
|
||||||
# shape <- "circle"
|
|
||||||
# }
|
|
||||||
|
|
||||||
data |>
|
data |>
|
||||||
ggeulerr(shape = "circle") +
|
ggeulerr(shape = "circle") +
|
||||||
ggplot2::theme_void() +
|
ggplot2::theme_void() +
|
||||||
|
@ -5477,7 +5441,7 @@ m_redcap_readUI <- function(id, title = TRUE, url = NULL) {
|
||||||
tags$p(phosphoricons::ph("info", weight = "bold"), "Please specify data to download, then press 'Import'.")
|
tags$p(phosphoricons::ph("info", weight = "bold"), "Please specify data to download, then press 'Import'.")
|
||||||
),
|
),
|
||||||
dismissible = TRUE
|
dismissible = TRUE
|
||||||
) # ,
|
)#,
|
||||||
## TODO: Use busy indicator like on download to have button activate/deactivate
|
## TODO: Use busy indicator like on download to have button activate/deactivate
|
||||||
# bslib::input_task_button(
|
# bslib::input_task_button(
|
||||||
# id = ns("data_import"),
|
# id = ns("data_import"),
|
||||||
|
@ -5565,9 +5529,7 @@ m_redcap_readServer <- function(id) {
|
||||||
)
|
)
|
||||||
|
|
||||||
# browser()
|
# browser()
|
||||||
shiny::withProgress({
|
imported <- try(rlang::exec(REDCapR::redcap_metadata_read, !!!parameters), silent = TRUE)
|
||||||
imported <- try(rlang::exec(REDCapR::redcap_metadata_read, !!!parameters), silent = TRUE)
|
|
||||||
},message = paste("Connecting to",data_rv$uri))
|
|
||||||
|
|
||||||
## TODO: Simplify error messages
|
## TODO: Simplify error messages
|
||||||
if (inherits(imported, "try-error") || NROW(imported) < 1 || ifelse(is.list(imported), !isTRUE(imported$success), FALSE)) {
|
if (inherits(imported, "try-error") || NROW(imported) < 1 || ifelse(is.list(imported), !isTRUE(imported$success), FALSE)) {
|
||||||
|
@ -5594,10 +5556,8 @@ m_redcap_readServer <- function(id) {
|
||||||
include_data_alert(
|
include_data_alert(
|
||||||
see_data_text = "Click to see data dictionary",
|
see_data_text = "Click to see data dictionary",
|
||||||
dataIdName = "see_data",
|
dataIdName = "see_data",
|
||||||
extra = tags$p(
|
extra = tags$p(tags$b(phosphoricons::ph("check", weight = "bold"), "Connected to server!"),
|
||||||
tags$b(phosphoricons::ph("check", weight = "bold"), "Connected to server!"),
|
glue::glue("The {data_rv$info$project_title} project is loaded.")),
|
||||||
glue::glue("The {data_rv$info$project_title} project is loaded.")
|
|
||||||
),
|
|
||||||
btn_show_data = TRUE
|
btn_show_data = TRUE
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -7561,8 +7521,7 @@ regression_server <- function(id,
|
||||||
|
|
||||||
shiny::observeEvent(
|
shiny::observeEvent(
|
||||||
list(
|
list(
|
||||||
data_r(),
|
data_r()
|
||||||
regression_vars()
|
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
rv$list$regression$tables <- NULL
|
rv$list$regression$tables <- NULL
|
||||||
|
@ -9438,8 +9397,8 @@ ui_elements <- list(
|
||||||
width = 9,
|
width = 9,
|
||||||
shiny::tags$p(
|
shiny::tags$p(
|
||||||
shiny::markdown("Below, are several options for simple data manipulation like update variables by renaming, creating new labels (for nicer tables in the report) and changing variable classes (numeric, factor/categorical etc.)."),
|
shiny::markdown("Below, are several options for simple data manipulation like update variables by renaming, creating new labels (for nicer tables in the report) and changing variable classes (numeric, factor/categorical etc.)."),
|
||||||
shiny::markdown("There are more advanced options to modify factor/categorical variables as well as create new factor from a continous variable or new variables with *R* code. At the bottom you can restore the original data."),
|
shiny::markdown("There are also more advanced options to modify factor/categorical variables as well as create new factor from a continous variable or new variables with *R* code. At the bottom you can restore the original data."),
|
||||||
shiny::markdown("Please note that data modifications are applied before any filtering.")
|
shiny::markdown("Please note that data modifications are applied before any data or variable filtering is applied.")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
@ -9728,28 +9687,14 @@ ui_elements <- list(
|
||||||
),
|
),
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#########
|
#########
|
||||||
######### Feedback link
|
######### Documentation panel
|
||||||
#########
|
|
||||||
##############################################################################
|
|
||||||
"feedback" = bslib::nav_item(
|
|
||||||
# shiny::img(shiny::icon("book")),
|
|
||||||
shiny::tags$a(
|
|
||||||
href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8",
|
|
||||||
"Feedback",shiny::icon("arrow-up-right-from-square"),
|
|
||||||
target = "_blank",
|
|
||||||
rel = "noopener noreferrer"
|
|
||||||
)
|
|
||||||
),
|
|
||||||
##############################################################################
|
|
||||||
#########
|
|
||||||
######### Documentation link
|
|
||||||
#########
|
#########
|
||||||
##############################################################################
|
##############################################################################
|
||||||
"docs" = bslib::nav_item(
|
"docs" = bslib::nav_item(
|
||||||
# shiny::img(shiny::icon("book")),
|
# shiny::img(shiny::icon("book")),
|
||||||
shiny::tags$a(
|
shiny::tags$a(
|
||||||
href = "https://agdamsbo.github.io/FreesearchR/",
|
href = "https://agdamsbo.github.io/FreesearchR/",
|
||||||
"Docs",shiny::icon("arrow-up-right-from-square"),
|
"Docs (external)",
|
||||||
target = "_blank",
|
target = "_blank",
|
||||||
rel = "noopener noreferrer"
|
rel = "noopener noreferrer"
|
||||||
)
|
)
|
||||||
|
@ -9791,7 +9736,6 @@ ui <- bslib::page_fixed(
|
||||||
ui_elements$analyze,
|
ui_elements$analyze,
|
||||||
ui_elements$download,
|
ui_elements$download,
|
||||||
bslib::nav_spacer(),
|
bslib::nav_spacer(),
|
||||||
ui_elements$feedback,
|
|
||||||
ui_elements$docs,
|
ui_elements$docs,
|
||||||
fillable = FALSE,
|
fillable = FALSE,
|
||||||
footer = shiny::tags$footer(
|
footer = shiny::tags$footer(
|
||||||
|
@ -9802,7 +9746,7 @@ ui <- bslib::page_fixed(
|
||||||
),
|
),
|
||||||
shiny::p(
|
shiny::p(
|
||||||
style = "margin: 1; color: #888;",
|
style = "margin: 1; color: #888;",
|
||||||
shiny::tags$a("Docs", href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer")," | ", hosted_version(), " | ", shiny::tags$a("License: AGPLv3", href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a("Source", href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a("Share feedback", href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer")
|
shiny::tags$a("Docs", href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer")," | ", app_version(), " | ", shiny::tags$a("License: AGPLv3", href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a("Source", href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a("Share feedback", href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer")
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -9829,7 +9773,9 @@ library(quarto)
|
||||||
library(here)
|
library(here)
|
||||||
library(broom)
|
library(broom)
|
||||||
library(broom.helpers)
|
library(broom.helpers)
|
||||||
|
# library(REDCapCAST)
|
||||||
library(easystats)
|
library(easystats)
|
||||||
|
# library(esquisse)
|
||||||
library(patchwork)
|
library(patchwork)
|
||||||
library(DHARMa)
|
library(DHARMa)
|
||||||
library(apexcharter)
|
library(apexcharter)
|
||||||
|
@ -9840,17 +9786,32 @@ library(shinyWidgets)
|
||||||
library(DT)
|
library(DT)
|
||||||
library(data.table)
|
library(data.table)
|
||||||
library(gtsummary)
|
library(gtsummary)
|
||||||
|
# library(FreesearchR)
|
||||||
|
|
||||||
|
# source("functions.R")
|
||||||
|
|
||||||
data(starwars)
|
data(starwars)
|
||||||
data(mtcars)
|
data(mtcars)
|
||||||
|
mtcars_date <- mtcars |> append_column(as.Date(sample(1:365, nrow(mtcars))), "rand_dates")
|
||||||
|
mtcars_date$date <- as.Date(sample(seq_len(365), nrow(mtcars)))
|
||||||
data(trial)
|
data(trial)
|
||||||
|
|
||||||
|
|
||||||
|
# light <- custom_theme()
|
||||||
|
#
|
||||||
|
# dark <- custom_theme(bg = "#000",fg="#fff")
|
||||||
|
|
||||||
|
|
||||||
server <- function(input, output, session) {
|
server <- function(input, output, session) {
|
||||||
## Listing files in www in session start to keep when ending and removing
|
## Listing files in www in session start to keep when ending and removing
|
||||||
## everything else.
|
## everything else.
|
||||||
files.to.keep <- list.files("www/")
|
files.to.keep <- list.files("www/")
|
||||||
|
|
||||||
|
output$docs_file <- shiny::renderUI({
|
||||||
|
# shiny::includeHTML("www/docs.html")
|
||||||
|
shiny::HTML(readLines("www/docs.html"))
|
||||||
|
})
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#########
|
#########
|
||||||
######### Night mode (just very popular, not really needed)
|
######### Night mode (just very popular, not really needed)
|
||||||
|
@ -10293,12 +10254,10 @@ server <- function(input, output, session) {
|
||||||
# })
|
# })
|
||||||
|
|
||||||
output$code_import <- shiny::renderUI({
|
output$code_import <- shiny::renderUI({
|
||||||
shiny::req(rv$code$import)
|
|
||||||
prismCodeBlock(paste0("#Data import\n", rv$code$import))
|
prismCodeBlock(paste0("#Data import\n", rv$code$import))
|
||||||
})
|
})
|
||||||
|
|
||||||
output$code_format <- shiny::renderUI({
|
output$code_import <- shiny::renderUI({
|
||||||
shiny::req(rv$code$format)
|
|
||||||
prismCodeBlock(paste0("#Data import formatting\n", rv$code$format))
|
prismCodeBlock(paste0("#Data import formatting\n", rv$code$format))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -10521,11 +10480,20 @@ server <- function(input, output, session) {
|
||||||
paste0("report.", input$output_type)
|
paste0("report.", input$output_type)
|
||||||
}),
|
}),
|
||||||
content = function(file, type = input$output_type) {
|
content = function(file, type = input$output_type) {
|
||||||
|
# browser()
|
||||||
|
# shiny::req(rv$list$regression)
|
||||||
## Notification is not progressing
|
## Notification is not progressing
|
||||||
## Presumably due to missing
|
## Presumably due to missing
|
||||||
|
# browser()
|
||||||
# Simplified for .rmd output attempt
|
# Simplified for .rmd output attempt
|
||||||
format <- ifelse(type == "docx", "word_document", "odt_document")
|
format <- ifelse(type == "docx", "word_document", "odt_document")
|
||||||
|
|
||||||
|
# browser()
|
||||||
|
# if (shiny::is.reactive(rv$regression)){
|
||||||
|
# rv$list$regression <- rv$regression()
|
||||||
|
# }
|
||||||
|
|
||||||
|
# rv$list$regression <- rv$regression()
|
||||||
rv$list$regression <- rv$regression()
|
rv$list$regression <- rv$regression()
|
||||||
|
|
||||||
shiny::withProgress(message = "Generating the report. Hold on for a moment..", {
|
shiny::withProgress(message = "Generating the report. Hold on for a moment..", {
|
||||||
|
|
|
@ -30,4 +30,4 @@ Here is a brief summary of the functions:
|
||||||
|
|
||||||
- Code to recreate all steps locally
|
- Code to recreate all steps locally
|
||||||
|
|
||||||
The full [project documentation is here](https://agdamsbo.github.io/FreesearchR/) where you'll find detailed description of the app and link to the source code! If you want to [share feedback, please follow this link to a simple survey](https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8).
|
The full [project documentation is here](https://agdamsbo.github.io/FreesearchR/) where you'll find detailed description of the app and link to the source code! If you want to [share feedback, please follow this link to a simple survey](https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8), or share on [GitHub](https://github.com/agdamsbo/FreesearchR/issues).
|
||||||
|
|
|
@ -6,7 +6,6 @@ author: FreesearchR data analysis tool
|
||||||
toc: false
|
toc: false
|
||||||
params:
|
params:
|
||||||
data.file: NA
|
data.file: NA
|
||||||
version: NA
|
|
||||||
---
|
---
|
||||||
|
|
||||||
```{r setup, echo = FALSE}
|
```{r setup, echo = FALSE}
|
||||||
|
@ -47,7 +46,7 @@ Research should be free and open with easy access for all. The FreesearchR tool
|
||||||
|
|
||||||
## Methods
|
## Methods
|
||||||
|
|
||||||
Analyses were conducted using the *FreesearchR* data analysis web-tool version `r params$version` based on *R* version 4.4.1.
|
Analyses were conducted in the *FreesearchR* data analysis web-tool based on R version 4.4.1.
|
||||||
|
|
||||||
## Results
|
## Results
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue